TPTP Problem File: DAT224^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT224^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Terminated lazy lists 605
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Loc10] Lochbihler (2010), Coinductive
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : tllist__605.p [Bla16]

% Status   : Theorem
% Rating   : 0.67 v8.2.0, 0.33 v8.1.0, 0.75 v7.5.0, 0.00 v7.2.0, 0.25 v7.1.0
% Syntax   : Number of formulae    :  321 ( 165 unt;  67 typ;   0 def)
%            Number of atoms       :  630 ( 341 equ;   0 cnn)
%            Maximal formula atoms :   10 (   2 avg)
%            Number of connectives : 5065 ( 105   ~;  10   |;  74   &;4611   @)
%                                         (   0 <=>; 265  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   29 (   9 avg)
%            Number of types       :    8 (   7 usr)
%            Number of type conns  :  493 ( 493   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   63 (  60 usr;   5 con; 0-10 aty)
%            Number of variables   : 1536 ( 164   ^;1273   !;  17   ?;1536   :)
%                                         (  82  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:52:57.049
%------------------------------------------------------------------------------
%----Could-be-implicit typings (11)
thf(ty_t_TLList__Mirabelle__qhjoikztpd_Otllist,type,
    tLList446370796tllist: $tType > $tType > $tType ).

thf(ty_t_Coinductive__List_Ollist,type,
    coinductive_llist: $tType > $tType ).

thf(ty_t_Product__Type_Ounit,type,
    product_unit: $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_f,type,
    f: $tType ).

thf(ty_tf_e,type,
    e: $tType ).

thf(ty_tf_d,type,
    d: $tType ).

thf(ty_tf_c,type,
    c: $tType ).

thf(ty_tf_b,type,
    b: $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (56)
thf(sy_c_Coinductive__List_Oiterates,type,
    coinductive_iterates: 
      !>[A: $tType] : ( ( A > A ) > A > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olappend,type,
    coinductive_lappend: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olconcat,type,
    coinductive_lconcat: 
      !>[A: $tType] : ( ( coinductive_llist @ ( coinductive_llist @ A ) ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olfilter,type,
    coinductive_lfilter: 
      !>[A: $tType] : ( ( A > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olfinite,type,
    coinductive_lfinite: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollist_OLCons,type,
    coinductive_LCons: 
      !>[A: $tType] : ( A > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Ollist_OLNil,type,
    coinductive_LNil: 
      !>[A: $tType] : ( coinductive_llist @ A ) ).

thf(sy_c_Coinductive__List_Ollist_Ocase__llist,type,
    coindu1381640503_llist: 
      !>[B: $tType,A: $tType] : ( B > ( A > ( coinductive_llist @ A ) > B ) > ( coinductive_llist @ A ) > B ) ).

thf(sy_c_Coinductive__List_Ollist_Olhd,type,
    coinductive_lhd: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > A ) ).

thf(sy_c_Coinductive__List_Ollist_Olnull,type,
    coinductive_lnull: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollist_Olset,type,
    coinductive_lset: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( set @ A ) ) ).

thf(sy_c_Coinductive__List_Ollist_Oltl,type,
    coinductive_ltl: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Fun_Oid,type,
    id: 
      !>[A: $tType] : ( A > A ) ).

thf(sy_c_HOL_Odefault__class_Odefault,type,
    default_default: 
      !>[A: $tType] : A ).

thf(sy_c_HOL_Oundefined,type,
    undefined: 
      !>[A: $tType] : A ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Lattices_Osup__class_Osup,type,
    sup_sup: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Orderings_Obot__class_Obot,type,
    bot_bot: 
      !>[A: $tType] : A ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Product__Type_OUnity,type,
    product_Unity: product_unit ).

thf(sy_c_Product__Type_Oold_Ounit_Orec__unit,type,
    product_rec_unit: 
      !>[T: $tType] : ( T > product_unit > T ) ).

thf(sy_c_Product__Type_Ounit_Ocase__unit,type,
    product_case_unit: 
      !>[A: $tType] : ( A > product_unit > A ) ).

thf(sy_c_Pure_Otype,type,
    type: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_Set_Oinsert,type,
    insert: 
      !>[A: $tType] : ( A > ( set @ A ) > ( set @ A ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Olappendt,type,
    tLList98099029ppendt: 
      !>[A: $tType,B: $tType] : ( ( coinductive_llist @ A ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Ollist__of__tllist,type,
    tLList798109904tllist: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otappend,type,
    tLList192138471append: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( tLList446370796tllist @ A @ B ) > ( B > ( tLList446370796tllist @ A @ C ) ) > ( tLList446370796tllist @ A @ C ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otcast,type,
    tLList222516140_tcast: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ C ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otconcat,type,
    tLList365522113concat: 
      !>[B: $tType,A: $tType] : ( B > ( tLList446370796tllist @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otconcat_H,type,
    tLList1329345514concat: 
      !>[B: $tType,A: $tType] : ( ( product_unit > B ) > ( tLList446370796tllist @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Oterminal0,type,
    tLList1825092077minal0: 
      !>[A: $tType] : A ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otfilter,type,
    tLList1813626245filter: 
      !>[B: $tType,A: $tType] : ( B > ( A > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otfilter_H,type,
    tLList1122525870filter: 
      !>[B: $tType,A: $tType] : ( ( product_unit > B ) > ( A > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_OTCons,type,
    tLList1992840728_TCons: 
      !>[A: $tType,B: $tType] : ( A > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_OTNil,type,
    tLList57907754e_TNil: 
      !>[B: $tType,A: $tType] : ( B > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ocase__tllist,type,
    tLList200813139tllist: 
      !>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( A > ( tLList446370796tllist @ A @ B ) > C ) > ( tLList446370796tllist @ A @ B ) > C ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ocorec__tllist,type,
    tLList1614408749tllist: 
      !>[E: $tType,B: $tType,A: $tType] : ( ( E > $o ) > ( E > B ) > ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ois__TNil,type,
    tLList1968894004s_TNil: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Opred__tllist,type,
    tLList11265572tllist: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Oset2__tllist,type,
    tLList457864275tllist: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > ( set @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Oterminal,type,
    tLList2110128105rminal: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > B ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Othd,type,
    tLList_Mirabelle_thd: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > A ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Otllist__all2,type,
    tLList1380991092t_all2: 
      !>[A: $tType,C: $tType,B: $tType,D: $tType] : ( ( A > C > $o ) > ( B > D > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Otmap,type,
    tLList1669959861e_tmap: 
      !>[A: $tType,Aa: $tType,B: $tType,Ba: $tType] : ( ( A > Aa ) > ( B > Ba ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ Aa @ Ba ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Otset,type,
    tLList1719791291e_tset: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > ( set @ A ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ottl,type,
    tLList_Mirabelle_ttl: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist__of__llist,type,
    tLList1672613558_llist: 
      !>[B: $tType,A: $tType] : ( B > ( coinductive_llist @ A ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Ounfold__tllist,type,
    tLList636831159tllist: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > $o ) > ( A > B ) > ( A > C ) > ( A > A ) > A > ( tLList446370796tllist @ C @ B ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_P,type,
    p: a > b > $o ).

thf(sy_v_Q,type,
    q: c > d > $o ).

thf(sy_v_f,type,
    f2: e > a ).

thf(sy_v_g,type,
    g: f > c ).

thf(sy_v_xs,type,
    xs: tLList446370796tllist @ e @ f ).

thf(sy_v_ys,type,
    ys: tLList446370796tllist @ b @ d ).

%----Relevant facts (250)
thf(fact_0_tllist_Orel__map_I2_J,axiom,
    ! [A: $tType,B: $tType,E: $tType,F: $tType,D: $tType,C: $tType,S1a: A > E > $o,S2a: B > F > $o,X: tLList446370796tllist @ A @ B,G1: C > E,G2: D > F,Y: tLList446370796tllist @ C @ D] :
      ( ( tLList1380991092t_all2 @ A @ E @ B @ F @ S1a @ S2a @ X @ ( tLList1669959861e_tmap @ C @ E @ D @ F @ G1 @ G2 @ Y ) )
      = ( tLList1380991092t_all2 @ A @ C @ B @ D
        @ ^ [X2: A,Y2: C] : ( S1a @ X2 @ ( G1 @ Y2 ) )
        @ ^ [X2: B,Y2: D] : ( S2a @ X2 @ ( G2 @ Y2 ) )
        @ X
        @ Y ) ) ).

% tllist.rel_map(2)
thf(fact_1_tllist_Orel__map_I1_J,axiom,
    ! [A: $tType,B: $tType,E: $tType,F: $tType,D: $tType,C: $tType,S1b: E > C > $o,S2b: F > D > $o,I1: A > E,I2: B > F,X: tLList446370796tllist @ A @ B,Y: tLList446370796tllist @ C @ D] :
      ( ( tLList1380991092t_all2 @ E @ C @ F @ D @ S1b @ S2b @ ( tLList1669959861e_tmap @ A @ E @ B @ F @ I1 @ I2 @ X ) @ Y )
      = ( tLList1380991092t_all2 @ A @ C @ B @ D
        @ ^ [X2: A] : ( S1b @ ( I1 @ X2 ) )
        @ ^ [X2: B] : ( S2b @ ( I2 @ X2 ) )
        @ X
        @ Y ) ) ).

% tllist.rel_map(1)
thf(fact_2_tllist_Orel__eq,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1380991092t_all2 @ A @ A @ B @ B
        @ ^ [Y3: A,Z: A] : Y3 = Z
        @ ^ [Y3: B,Z: B] : Y3 = Z )
      = ( ^ [Y3: tLList446370796tllist @ A @ B,Z: tLList446370796tllist @ A @ B] : Y3 = Z ) ) ).

% tllist.rel_eq
thf(fact_3_tllist_Orel__refl,axiom,
    ! [D: $tType,C: $tType,R1a: C > C > $o,R2a: D > D > $o,X: tLList446370796tllist @ C @ D] :
      ( ! [X3: C] : ( R1a @ X3 @ X3 )
     => ( ! [X3: D] : ( R2a @ X3 @ X3 )
       => ( tLList1380991092t_all2 @ C @ C @ D @ D @ R1a @ R2a @ X @ X ) ) ) ).

% tllist.rel_refl
thf(fact_4_tllist_Omap__ident,axiom,
    ! [B: $tType,A: $tType,T2: tLList446370796tllist @ A @ B] :
      ( ( tLList1669959861e_tmap @ A @ A @ B @ B
        @ ^ [X2: A] : X2
        @ ^ [X2: B] : X2
        @ T2 )
      = T2 ) ).

% tllist.map_ident
thf(fact_5_tllist_Omap__cong__pred,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,X: tLList446370796tllist @ A @ B,Ya: tLList446370796tllist @ A @ B,F1: A > C,G1: A > C,F2: B > D,G2: B > D] :
      ( ( X = Ya )
     => ( ( tLList11265572tllist @ A @ B
          @ ^ [Z1: A] :
              ( ( F1 @ Z1 )
              = ( G1 @ Z1 ) )
          @ ^ [Z2: B] :
              ( ( F2 @ Z2 )
              = ( G2 @ Z2 ) )
          @ Ya )
       => ( ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ X )
          = ( tLList1669959861e_tmap @ A @ C @ B @ D @ G1 @ G2 @ Ya ) ) ) ) ).

% tllist.map_cong_pred
thf(fact_6_ttl__tmap,axiom,
    ! [B: $tType,A: $tType,D: $tType,C: $tType,F3: C > A,G: D > B,Xs: tLList446370796tllist @ C @ D] :
      ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList1669959861e_tmap @ C @ A @ D @ B @ F3 @ G @ Xs ) )
      = ( tLList1669959861e_tmap @ C @ A @ D @ B @ F3 @ G @ ( tLList_Mirabelle_ttl @ C @ D @ Xs ) ) ) ).

% ttl_tmap
thf(fact_7_tllist__all2__TCons,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R2: B > D > $o,X21: A,X22: tLList446370796tllist @ A @ B,Y21: C,Y22: tLList446370796tllist @ C @ D] :
      ( ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) @ ( tLList1992840728_TCons @ C @ D @ Y21 @ Y22 ) )
      = ( ( R1 @ X21 @ Y21 )
        & ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ X22 @ Y22 ) ) ) ).

% tllist_all2_TCons
thf(fact_8_tllist__all2__TNil,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,R1: A > C > $o,R2: B > D > $o,X1: B,Y1: D] :
      ( ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ ( tLList57907754e_TNil @ B @ A @ X1 ) @ ( tLList57907754e_TNil @ D @ C @ Y1 ) )
      = ( R2 @ X1 @ Y1 ) ) ).

% tllist_all2_TNil
thf(fact_9_tllist_Omap__disc__iff,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,F1: A > C,F2: B > D,A2: tLList446370796tllist @ A @ B] :
      ( ( tLList1968894004s_TNil @ C @ D @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ A2 ) )
      = ( tLList1968894004s_TNil @ A @ B @ A2 ) ) ).

% tllist.map_disc_iff
thf(fact_10_tllist_Osimps_I15_J,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,F1: A > C,F2: B > D,X21: A,X22: tLList446370796tllist @ A @ B] :
      ( ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) )
      = ( tLList1992840728_TCons @ C @ D @ ( F1 @ X21 ) @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ X22 ) ) ) ).

% tllist.simps(15)
thf(fact_11_TCons__eq__tmap__conv,axiom,
    ! [D: $tType,B: $tType,A: $tType,C: $tType,Y: A,Ys: tLList446370796tllist @ A @ B,F3: C > A,G: D > B,Xs: tLList446370796tllist @ C @ D] :
      ( ( ( tLList1992840728_TCons @ A @ B @ Y @ Ys )
        = ( tLList1669959861e_tmap @ C @ A @ D @ B @ F3 @ G @ Xs ) )
      = ( ? [Z3: C,Zs: tLList446370796tllist @ C @ D] :
            ( ( Xs
              = ( tLList1992840728_TCons @ C @ D @ Z3 @ Zs ) )
            & ( ( F3 @ Z3 )
              = Y )
            & ( ( tLList1669959861e_tmap @ C @ A @ D @ B @ F3 @ G @ Zs )
              = Ys ) ) ) ) ).

% TCons_eq_tmap_conv
thf(fact_12_tmap__eq__TCons__conv,axiom,
    ! [D: $tType,B: $tType,A: $tType,C: $tType,F3: C > A,G: D > B,Xs: tLList446370796tllist @ C @ D,Y: A,Ys: tLList446370796tllist @ A @ B] :
      ( ( ( tLList1669959861e_tmap @ C @ A @ D @ B @ F3 @ G @ Xs )
        = ( tLList1992840728_TCons @ A @ B @ Y @ Ys ) )
      = ( ? [Z3: C,Zs: tLList446370796tllist @ C @ D] :
            ( ( Xs
              = ( tLList1992840728_TCons @ C @ D @ Z3 @ Zs ) )
            & ( ( F3 @ Z3 )
              = Y )
            & ( ( tLList1669959861e_tmap @ C @ A @ D @ B @ F3 @ G @ Zs )
              = Ys ) ) ) ) ).

% tmap_eq_TCons_conv
thf(fact_13_tllist_Osimps_I14_J,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,F1: A > C,F2: B > D,X1: B] :
      ( ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ ( tLList57907754e_TNil @ B @ A @ X1 ) )
      = ( tLList57907754e_TNil @ D @ C @ ( F2 @ X1 ) ) ) ).

% tllist.simps(14)
thf(fact_14_TNil__eq__tmap__conv,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,Y: B,F3: C > A,G: D > B,Xs: tLList446370796tllist @ C @ D] :
      ( ( ( tLList57907754e_TNil @ B @ A @ Y )
        = ( tLList1669959861e_tmap @ C @ A @ D @ B @ F3 @ G @ Xs ) )
      = ( ? [Y4: D] :
            ( ( Xs
              = ( tLList57907754e_TNil @ D @ C @ Y4 ) )
            & ( ( G @ Y4 )
              = Y ) ) ) ) ).

% TNil_eq_tmap_conv
thf(fact_15_tmap__eq__TNil__conv,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,F3: C > A,G: D > B,Xs: tLList446370796tllist @ C @ D,Y: B] :
      ( ( ( tLList1669959861e_tmap @ C @ A @ D @ B @ F3 @ G @ Xs )
        = ( tLList57907754e_TNil @ B @ A @ Y ) )
      = ( ? [Y4: D] :
            ( ( Xs
              = ( tLList57907754e_TNil @ D @ C @ Y4 ) )
            & ( ( G @ Y4 )
              = Y ) ) ) ) ).

% tmap_eq_TNil_conv
thf(fact_16_tllist_Orel__intros_I2_J,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,X21: A,Y21: C,R2: B > D > $o,X22: tLList446370796tllist @ A @ B,Y22: tLList446370796tllist @ C @ D] :
      ( ( R1 @ X21 @ Y21 )
     => ( ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ X22 @ Y22 )
       => ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) @ ( tLList1992840728_TCons @ C @ D @ Y21 @ Y22 ) ) ) ) ).

% tllist.rel_intros(2)
thf(fact_17_tllist_Oinject_I1_J,axiom,
    ! [A: $tType,B: $tType,X1: B,Y1: B] :
      ( ( ( tLList57907754e_TNil @ B @ A @ X1 )
        = ( tLList57907754e_TNil @ B @ A @ Y1 ) )
      = ( X1 = Y1 ) ) ).

% tllist.inject(1)
thf(fact_18_tllist_Oinject_I2_J,axiom,
    ! [B: $tType,A: $tType,X21: A,X22: tLList446370796tllist @ A @ B,Y21: A,Y22: tLList446370796tllist @ A @ B] :
      ( ( ( tLList1992840728_TCons @ A @ B @ X21 @ X22 )
        = ( tLList1992840728_TCons @ A @ B @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% tllist.inject(2)
thf(fact_19_tllist_Opred__inject_I1_J,axiom,
    ! [A: $tType,B: $tType,P1: A > $o,P2: B > $o,A2: B] :
      ( ( tLList11265572tllist @ A @ B @ P1 @ P2 @ ( tLList57907754e_TNil @ B @ A @ A2 ) )
      = ( P2 @ A2 ) ) ).

% tllist.pred_inject(1)
thf(fact_20_tllist_Opred__inject_I2_J,axiom,
    ! [B: $tType,A: $tType,P1: A > $o,P2: B > $o,A2: A,Aa2: tLList446370796tllist @ A @ B] :
      ( ( tLList11265572tllist @ A @ B @ P1 @ P2 @ ( tLList1992840728_TCons @ A @ B @ A2 @ Aa2 ) )
      = ( ( P1 @ A2 )
        & ( tLList11265572tllist @ A @ B @ P1 @ P2 @ Aa2 ) ) ) ).

% tllist.pred_inject(2)
thf(fact_21_tllist_Osel_I5_J,axiom,
    ! [B: $tType,A: $tType,X21: A,X22: tLList446370796tllist @ A @ B] :
      ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) )
      = X22 ) ).

% tllist.sel(5)
thf(fact_22_tllist_Osel_I4_J,axiom,
    ! [A: $tType,B: $tType,X1: B] :
      ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList57907754e_TNil @ B @ A @ X1 ) )
      = ( tLList57907754e_TNil @ B @ A @ X1 ) ) ).

% tllist.sel(4)
thf(fact_23_tllist_Odisc_I2_J,axiom,
    ! [B: $tType,A: $tType,X21: A,X22: tLList446370796tllist @ A @ B] :
      ~ ( tLList1968894004s_TNil @ A @ B @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) ) ).

% tllist.disc(2)
thf(fact_24_tllist_Odisc_I1_J,axiom,
    ! [A: $tType,B: $tType,X1: B] : ( tLList1968894004s_TNil @ A @ B @ ( tLList57907754e_TNil @ B @ A @ X1 ) ) ).

% tllist.disc(1)
thf(fact_25_tllist_OdiscI_I2_J,axiom,
    ! [B: $tType,A: $tType,Tllist: tLList446370796tllist @ A @ B,X21: A,X22: tLList446370796tllist @ A @ B] :
      ( ( Tllist
        = ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) )
     => ~ ( tLList1968894004s_TNil @ A @ B @ Tllist ) ) ).

% tllist.discI(2)
thf(fact_26_tllist_OdiscI_I1_J,axiom,
    ! [B: $tType,A: $tType,Tllist: tLList446370796tllist @ A @ B,X1: B] :
      ( ( Tllist
        = ( tLList57907754e_TNil @ B @ A @ X1 ) )
     => ( tLList1968894004s_TNil @ A @ B @ Tllist ) ) ).

% tllist.discI(1)
thf(fact_27_tllist_Odistinct_I1_J,axiom,
    ! [B: $tType,A: $tType,X1: B,X21: A,X22: tLList446370796tllist @ A @ B] :
      ( ( tLList57907754e_TNil @ B @ A @ X1 )
     != ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) ) ).

% tllist.distinct(1)
thf(fact_28_is__TNil__ttl,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( tLList1968894004s_TNil @ A @ B @ ( tLList_Mirabelle_ttl @ A @ B @ Xs ) ) ) ).

% is_TNil_ttl
thf(fact_29_tllist_Oexhaust,axiom,
    ! [B: $tType,A: $tType,Y: tLList446370796tllist @ A @ B] :
      ( ! [X12: B] :
          ( Y
         != ( tLList57907754e_TNil @ B @ A @ X12 ) )
     => ~ ! [X212: A,X222: tLList446370796tllist @ A @ B] :
            ( Y
           != ( tLList1992840728_TCons @ A @ B @ X212 @ X222 ) ) ) ).

% tllist.exhaust
thf(fact_30_is__TNil__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1968894004s_TNil @ A @ B )
      = ( ^ [Tllist2: tLList446370796tllist @ A @ B] :
          ? [X13: B] :
            ( Tllist2
            = ( tLList57907754e_TNil @ B @ A @ X13 ) ) ) ) ).

% is_TNil_def
thf(fact_31_tllist__all2__cases,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,P: A > B > $o,Q: C > D > $o,Xs: tLList446370796tllist @ A @ C,Ys: tLList446370796tllist @ B @ D] :
      ( ( tLList1380991092t_all2 @ A @ B @ C @ D @ P @ Q @ Xs @ Ys )
     => ( ! [B2: C] :
            ( ( Xs
              = ( tLList57907754e_TNil @ C @ A @ B2 ) )
           => ! [B3: D] :
                ( ( Ys
                  = ( tLList57907754e_TNil @ D @ B @ B3 ) )
               => ~ ( Q @ B2 @ B3 ) ) )
       => ~ ! [X3: A,Xs2: tLList446370796tllist @ A @ C] :
              ( ( Xs
                = ( tLList1992840728_TCons @ A @ C @ X3 @ Xs2 ) )
             => ! [Y5: B,Ys2: tLList446370796tllist @ B @ D] :
                  ( ( Ys
                    = ( tLList1992840728_TCons @ B @ D @ Y5 @ Ys2 ) )
                 => ( ( P @ X3 @ Y5 )
                   => ~ ( tLList1380991092t_all2 @ A @ B @ C @ D @ P @ Q @ Xs2 @ Ys2 ) ) ) ) ) ) ).

% tllist_all2_cases
thf(fact_32_tllist_Orel__cases,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R2: B > D > $o,A2: tLList446370796tllist @ A @ B,B4: tLList446370796tllist @ C @ D] :
      ( ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ A2 @ B4 )
     => ( ! [X3: B] :
            ( ( A2
              = ( tLList57907754e_TNil @ B @ A @ X3 ) )
           => ! [Y5: D] :
                ( ( B4
                  = ( tLList57907754e_TNil @ D @ C @ Y5 ) )
               => ~ ( R2 @ X3 @ Y5 ) ) )
       => ~ ! [X1a: A,X23: tLList446370796tllist @ A @ B] :
              ( ( A2
                = ( tLList1992840728_TCons @ A @ B @ X1a @ X23 ) )
             => ! [Y1a: C,Y23: tLList446370796tllist @ C @ D] :
                  ( ( B4
                    = ( tLList1992840728_TCons @ C @ D @ Y1a @ Y23 ) )
                 => ( ( R1 @ X1a @ Y1a )
                   => ~ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ X23 @ Y23 ) ) ) ) ) ) ).

% tllist.rel_cases
thf(fact_33_tllist_Orel__distinct_I1_J,axiom,
    ! [B: $tType,A: $tType,D: $tType,C: $tType,R1: A > C > $o,R2: B > D > $o,X1: B,Y21: C,Y22: tLList446370796tllist @ C @ D] :
      ~ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ ( tLList57907754e_TNil @ B @ A @ X1 ) @ ( tLList1992840728_TCons @ C @ D @ Y21 @ Y22 ) ) ).

% tllist.rel_distinct(1)
thf(fact_34_tllist_Orel__distinct_I2_J,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,R1: A > C > $o,R2: B > D > $o,Y21: A,Y22: tLList446370796tllist @ A @ B,X1: D] :
      ~ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ ( tLList1992840728_TCons @ A @ B @ Y21 @ Y22 ) @ ( tLList57907754e_TNil @ D @ C @ X1 ) ) ).

% tllist.rel_distinct(2)
thf(fact_35_tllist_Omap__sel_I3_J,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,A2: tLList446370796tllist @ A @ B,F1: A > C,F2: B > D] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ A2 )
     => ( ( tLList_Mirabelle_ttl @ C @ D @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ A2 ) )
        = ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ ( tLList_Mirabelle_ttl @ A @ B @ A2 ) ) ) ) ).

% tllist.map_sel(3)
thf(fact_36_tllist_Opred__True,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList11265572tllist @ A @ B
        @ ^ [Uu: A] : $true
        @ ^ [Uu: B] : $true )
      = ( ^ [Uu: tLList446370796tllist @ A @ B] : $true ) ) ).

% tllist.pred_True
thf(fact_37_tllist__all2__TNil2,axiom,
    ! [B: $tType,D: $tType,A: $tType,C: $tType,P: A > B > $o,Q: C > D > $o,Ts: tLList446370796tllist @ A @ C,B5: D] :
      ( ( tLList1380991092t_all2 @ A @ B @ C @ D @ P @ Q @ Ts @ ( tLList57907754e_TNil @ D @ B @ B5 ) )
      = ( ? [B6: C] :
            ( ( Ts
              = ( tLList57907754e_TNil @ C @ A @ B6 ) )
            & ( Q @ B6 @ B5 ) ) ) ) ).

% tllist_all2_TNil2
thf(fact_38_tllist__all2__TNil1,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,P: A > B > $o,Q: C > D > $o,B4: C,Ts: tLList446370796tllist @ B @ D] :
      ( ( tLList1380991092t_all2 @ A @ B @ C @ D @ P @ Q @ ( tLList57907754e_TNil @ C @ A @ B4 ) @ Ts )
      = ( ? [B7: D] :
            ( ( Ts
              = ( tLList57907754e_TNil @ D @ B @ B7 ) )
            & ( Q @ B4 @ B7 ) ) ) ) ).

% tllist_all2_TNil1
thf(fact_39_tllist_Orel__intros_I1_J,axiom,
    ! [B: $tType,A: $tType,C: $tType,D: $tType,R2: B > D > $o,X1: B,Y1: D,R1: A > C > $o] :
      ( ( R2 @ X1 @ Y1 )
     => ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ ( tLList57907754e_TNil @ B @ A @ X1 ) @ ( tLList57907754e_TNil @ D @ C @ Y1 ) ) ) ).

% tllist.rel_intros(1)
thf(fact_40_tllist__all2__TCons2,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,P: A > B > $o,Q: C > D > $o,Ts2: tLList446370796tllist @ A @ C,X: B,Ts: tLList446370796tllist @ B @ D] :
      ( ( tLList1380991092t_all2 @ A @ B @ C @ D @ P @ Q @ Ts2 @ ( tLList1992840728_TCons @ B @ D @ X @ Ts ) )
      = ( ? [X4: A,Ts3: tLList446370796tllist @ A @ C] :
            ( ( Ts2
              = ( tLList1992840728_TCons @ A @ C @ X4 @ Ts3 ) )
            & ( P @ X4 @ X )
            & ( tLList1380991092t_all2 @ A @ B @ C @ D @ P @ Q @ Ts3 @ Ts ) ) ) ) ).

% tllist_all2_TCons2
thf(fact_41_tllist__all2__TCons1,axiom,
    ! [D: $tType,A: $tType,C: $tType,B: $tType,P: A > B > $o,Q: C > D > $o,X: A,Ts: tLList446370796tllist @ A @ C,Ts2: tLList446370796tllist @ B @ D] :
      ( ( tLList1380991092t_all2 @ A @ B @ C @ D @ P @ Q @ ( tLList1992840728_TCons @ A @ C @ X @ Ts ) @ Ts2 )
      = ( ? [X4: B,Ts3: tLList446370796tllist @ B @ D] :
            ( ( Ts2
              = ( tLList1992840728_TCons @ B @ D @ X4 @ Ts3 ) )
            & ( P @ X @ X4 )
            & ( tLList1380991092t_all2 @ A @ B @ C @ D @ P @ Q @ Ts @ Ts3 ) ) ) ) ).

% tllist_all2_TCons1
thf(fact_42_tllist_Ocollapse_I2_J,axiom,
    ! [B: $tType,A: $tType,Tllist: tLList446370796tllist @ A @ B] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist )
     => ( ( tLList1992840728_TCons @ A @ B @ ( tLList_Mirabelle_thd @ A @ B @ Tllist ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist ) )
        = Tllist ) ) ).

% tllist.collapse(2)
thf(fact_43_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_44_Collect__mem__eq,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( collect @ A
        @ ^ [X2: A] : ( member @ A @ X2 @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_45_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X3: A] :
          ( ( P @ X3 )
          = ( Q @ X3 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_46_ext,axiom,
    ! [B: $tType,A: $tType,F3: A > B,G: A > B] :
      ( ! [X3: A] :
          ( ( F3 @ X3 )
          = ( G @ X3 ) )
     => ( F3 = G ) ) ).

% ext
thf(fact_47_tconcat__TNil,axiom,
    ! [A: $tType,B: $tType,B4: B,B5: B] :
      ( ( tLList365522113concat @ B @ A @ B4 @ ( tLList57907754e_TNil @ B @ ( coinductive_llist @ A ) @ B5 ) )
      = ( tLList57907754e_TNil @ B @ A @ B5 ) ) ).

% tconcat_TNil
thf(fact_48_ttl__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList_Mirabelle_ttl @ A @ B )
      = ( tLList200813139tllist @ B @ ( tLList446370796tllist @ A @ B ) @ A @ ( tLList57907754e_TNil @ B @ A )
        @ ^ [X213: A,X223: tLList446370796tllist @ A @ B] : X223 ) ) ).

% ttl_def
thf(fact_49_tllist_Omap__sel_I2_J,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,A2: tLList446370796tllist @ A @ B,F1: A > C,F2: B > D] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ A2 )
     => ( ( tLList_Mirabelle_thd @ C @ D @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ A2 ) )
        = ( F1 @ ( tLList_Mirabelle_thd @ A @ B @ A2 ) ) ) ) ).

% tllist.map_sel(2)
thf(fact_50_tmap__is__TNil,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B,F3: A > C,G: B > D] :
      ( ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( ( tLList1669959861e_tmap @ A @ C @ B @ D @ F3 @ G @ Xs )
        = ( tLList57907754e_TNil @ D @ C @ ( G @ ( tLList2110128105rminal @ A @ B @ Xs ) ) ) ) ) ).

% tmap_is_TNil
thf(fact_51_ttl__unfold__tllist,axiom,
    ! [B: $tType,A: $tType,C: $tType,IS_TNIL: C > $o,A2: C,TNIL: C > B,THD: C > A,TTL: C > C] :
      ( ( ( IS_TNIL @ A2 )
       => ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList636831159tllist @ C @ B @ A @ IS_TNIL @ TNIL @ THD @ TTL @ A2 ) )
          = ( tLList57907754e_TNil @ B @ A @ ( TNIL @ A2 ) ) ) )
      & ( ~ ( IS_TNIL @ A2 )
       => ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList636831159tllist @ C @ B @ A @ IS_TNIL @ TNIL @ THD @ TTL @ A2 ) )
          = ( tLList636831159tllist @ C @ B @ A @ IS_TNIL @ TNIL @ THD @ TTL @ ( TTL @ A2 ) ) ) ) ) ).

% ttl_unfold_tllist
thf(fact_52_tllist_Ocorec__code,axiom,
    ! [B: $tType,A: $tType,E: $tType] :
      ( ( tLList1614408749tllist @ E @ B @ A )
      = ( ^ [P3: E > $o,G12: E > B,G21: E > A,Q22: E > $o,G221: E > ( tLList446370796tllist @ A @ B ),G222: E > E,A4: E] : ( if @ ( tLList446370796tllist @ A @ B ) @ ( P3 @ A4 ) @ ( tLList57907754e_TNil @ B @ A @ ( G12 @ A4 ) ) @ ( tLList1992840728_TCons @ A @ B @ ( G21 @ A4 ) @ ( if @ ( tLList446370796tllist @ A @ B ) @ ( Q22 @ A4 ) @ ( G221 @ A4 ) @ ( tLList1614408749tllist @ E @ B @ A @ P3 @ G12 @ G21 @ Q22 @ G221 @ G222 @ ( G222 @ A4 ) ) ) ) ) ) ) ).

% tllist.corec_code
thf(fact_53_unfold__tllist_Ocode,axiom,
    ! [B: $tType,C: $tType,A: $tType] :
      ( ( tLList636831159tllist @ A @ B @ C )
      = ( ^ [P3: A > $o,G12: A > B,G21: A > C,G22: A > A,A4: A] : ( if @ ( tLList446370796tllist @ C @ B ) @ ( P3 @ A4 ) @ ( tLList57907754e_TNil @ B @ C @ ( G12 @ A4 ) ) @ ( tLList1992840728_TCons @ C @ B @ ( G21 @ A4 ) @ ( tLList636831159tllist @ A @ B @ C @ P3 @ G12 @ G21 @ G22 @ ( G22 @ A4 ) ) ) ) ) ) ).

% unfold_tllist.code
thf(fact_54_tconcat_H__code_I1_J,axiom,
    ! [A: $tType,B: $tType,B4: product_unit > B,B5: B] :
      ( ( tLList1329345514concat @ B @ A @ B4 @ ( tLList57907754e_TNil @ B @ ( coinductive_llist @ A ) @ B5 ) )
      = ( tLList57907754e_TNil @ B @ A @ B5 ) ) ).

% tconcat'_code(1)
thf(fact_55_tllist_Ocollapse_I1_J,axiom,
    ! [B: $tType,A: $tType,Tllist: tLList446370796tllist @ A @ B] :
      ( ( tLList1968894004s_TNil @ A @ B @ Tllist )
     => ( ( tLList57907754e_TNil @ B @ A @ ( tLList2110128105rminal @ A @ B @ Tllist ) )
        = Tllist ) ) ).

% tllist.collapse(1)
thf(fact_56_terminal__TCons,axiom,
    ! [A: $tType,B: $tType,X: B,Xs: tLList446370796tllist @ B @ A] :
      ( ( tLList2110128105rminal @ B @ A @ ( tLList1992840728_TCons @ B @ A @ X @ Xs ) )
      = ( tLList2110128105rminal @ B @ A @ Xs ) ) ).

% terminal_TCons
thf(fact_57_terminal__ttl,axiom,
    ! [A: $tType,B: $tType,Xs: tLList446370796tllist @ B @ A] :
      ( ( tLList2110128105rminal @ B @ A @ ( tLList_Mirabelle_ttl @ B @ A @ Xs ) )
      = ( tLList2110128105rminal @ B @ A @ Xs ) ) ).

% terminal_ttl
thf(fact_58_unfold__tllist_Odisc__iff_I1_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,P4: A > $o,G1: A > B,G212: A > C,G223: A > A,A2: A] :
      ( ( tLList1968894004s_TNil @ C @ B @ ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 ) )
      = ( P4 @ A2 ) ) ).

% unfold_tllist.disc_iff(1)
thf(fact_59_unfold__tllist_Odisc__iff_I2_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,P4: A > $o,G1: A > B,G212: A > C,G223: A > A,A2: A] :
      ( ( ~ ( tLList1968894004s_TNil @ C @ B @ ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 ) ) )
      = ( ~ ( P4 @ A2 ) ) ) ).

% unfold_tllist.disc_iff(2)
thf(fact_60_tllist_Ocorec__disc__iff_I1_J,axiom,
    ! [A: $tType,B: $tType,E: $tType,P4: E > $o,G1: E > B,G212: E > A,Q222: E > $o,G2212: E > ( tLList446370796tllist @ A @ B ),G2222: E > E,A2: E] :
      ( ( tLList1968894004s_TNil @ A @ B @ ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 ) )
      = ( P4 @ A2 ) ) ).

% tllist.corec_disc_iff(1)
thf(fact_61_tllist_Ocorec__disc__iff_I2_J,axiom,
    ! [A: $tType,B: $tType,E: $tType,P4: E > $o,G1: E > B,G212: E > A,Q222: E > $o,G2212: E > ( tLList446370796tllist @ A @ B ),G2222: E > E,A2: E] :
      ( ( ~ ( tLList1968894004s_TNil @ A @ B @ ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 ) ) )
      = ( ~ ( P4 @ A2 ) ) ) ).

% tllist.corec_disc_iff(2)
thf(fact_62_unfold__tllist__eq__TNil,axiom,
    ! [A: $tType,B: $tType,C: $tType,IS_TNIL: C > $o,TNIL: C > B,THD: C > A,TTL: C > C,A2: C,B4: B] :
      ( ( ( tLList636831159tllist @ C @ B @ A @ IS_TNIL @ TNIL @ THD @ TTL @ A2 )
        = ( tLList57907754e_TNil @ B @ A @ B4 ) )
      = ( ( IS_TNIL @ A2 )
        & ( B4
          = ( TNIL @ A2 ) ) ) ) ).

% unfold_tllist_eq_TNil
thf(fact_63_TNil__eq__unfold__tllist,axiom,
    ! [A: $tType,B: $tType,C: $tType,B4: B,IS_TNIL: C > $o,TNIL: C > B,THD: C > A,TTL: C > C,A2: C] :
      ( ( ( tLList57907754e_TNil @ B @ A @ B4 )
        = ( tLList636831159tllist @ C @ B @ A @ IS_TNIL @ TNIL @ THD @ TTL @ A2 ) )
      = ( ( IS_TNIL @ A2 )
        & ( B4
          = ( TNIL @ A2 ) ) ) ) ).

% TNil_eq_unfold_tllist
thf(fact_64_unfold__tllist_Osimps_I3_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,P4: A > $o,A2: A,G1: A > B,G212: A > C,G223: A > A] :
      ( ( P4 @ A2 )
     => ( ( tLList2110128105rminal @ C @ B @ ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 ) )
        = ( G1 @ A2 ) ) ) ).

% unfold_tllist.simps(3)
thf(fact_65_unfold__tllist_Osimps_I4_J,axiom,
    ! [B: $tType,C: $tType,A: $tType,P4: A > $o,A2: A,G1: A > B,G212: A > C,G223: A > A] :
      ( ~ ( P4 @ A2 )
     => ( ( tLList_Mirabelle_thd @ C @ B @ ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 ) )
        = ( G212 @ A2 ) ) ) ).

% unfold_tllist.simps(4)
thf(fact_66_tllist_Ocorec__sel_I1_J,axiom,
    ! [Aa: $tType,A: $tType,E: $tType,P4: E > $o,A2: E,G1: E > A,G212: E > Aa,Q222: E > $o,G2212: E > ( tLList446370796tllist @ Aa @ A ),G2222: E > E] :
      ( ( P4 @ A2 )
     => ( ( tLList2110128105rminal @ Aa @ A @ ( tLList1614408749tllist @ E @ A @ Aa @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 ) )
        = ( G1 @ A2 ) ) ) ).

% tllist.corec_sel(1)
thf(fact_67_tllist_Ocorec__sel_I2_J,axiom,
    ! [B: $tType,A: $tType,E: $tType,P4: E > $o,A2: E,G1: E > B,G212: E > A,Q222: E > $o,G2212: E > ( tLList446370796tllist @ A @ B ),G2222: E > E] :
      ( ~ ( P4 @ A2 )
     => ( ( tLList_Mirabelle_thd @ A @ B @ ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 ) )
        = ( G212 @ A2 ) ) ) ).

% tllist.corec_sel(2)
thf(fact_68_tconcat__code,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList365522113concat @ A @ B )
      = ( ^ [B6: A] :
            ( tLList1329345514concat @ A @ B
            @ ^ [Uu: product_unit] : B6 ) ) ) ).

% tconcat_code
thf(fact_69_tllist_Ocase__eq__if,axiom,
    ! [A: $tType,C: $tType,B: $tType] :
      ( ( tLList200813139tllist @ B @ C @ A )
      = ( ^ [F12: B > C,F22: A > ( tLList446370796tllist @ A @ B ) > C,Tllist2: tLList446370796tllist @ A @ B] : ( if @ C @ ( tLList1968894004s_TNil @ A @ B @ Tllist2 ) @ ( F12 @ ( tLList2110128105rminal @ A @ B @ Tllist2 ) ) @ ( F22 @ ( tLList_Mirabelle_thd @ A @ B @ Tllist2 ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist2 ) ) ) ) ) ).

% tllist.case_eq_if
thf(fact_70_tllist_Ocase__distrib,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,H: C > D,F1: B > C,F2: A > ( tLList446370796tllist @ A @ B ) > C,Tllist: tLList446370796tllist @ A @ B] :
      ( ( H @ ( tLList200813139tllist @ B @ C @ A @ F1 @ F2 @ Tllist ) )
      = ( tLList200813139tllist @ B @ D @ A
        @ ^ [X2: B] : ( H @ ( F1 @ X2 ) )
        @ ^ [X13: A,X24: tLList446370796tllist @ A @ B] : ( H @ ( F2 @ X13 @ X24 ) )
        @ Tllist ) ) ).

% tllist.case_distrib
thf(fact_71_tllist_Ocoinduct__strong,axiom,
    ! [B: $tType,A: $tType,R: ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) > $o,Tllist: tLList446370796tllist @ A @ B,Tllist3: tLList446370796tllist @ A @ B] :
      ( ( R @ Tllist @ Tllist3 )
     => ( ! [Tllist4: tLList446370796tllist @ A @ B,Tllist5: tLList446370796tllist @ A @ B] :
            ( ( R @ Tllist4 @ Tllist5 )
           => ( ( ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
                = ( tLList1968894004s_TNil @ A @ B @ Tllist5 ) )
              & ( ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
               => ( ( tLList1968894004s_TNil @ A @ B @ Tllist5 )
                 => ( ( tLList2110128105rminal @ A @ B @ Tllist4 )
                    = ( tLList2110128105rminal @ A @ B @ Tllist5 ) ) ) )
              & ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
               => ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist5 )
                 => ( ( ( tLList_Mirabelle_thd @ A @ B @ Tllist4 )
                      = ( tLList_Mirabelle_thd @ A @ B @ Tllist5 ) )
                    & ( ( R @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist4 ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist5 ) )
                      | ( ( tLList_Mirabelle_ttl @ A @ B @ Tllist4 )
                        = ( tLList_Mirabelle_ttl @ A @ B @ Tllist5 ) ) ) ) ) ) ) )
       => ( Tllist = Tllist3 ) ) ) ).

% tllist.coinduct_strong
thf(fact_72_tllist_Ocoinduct,axiom,
    ! [B: $tType,A: $tType,R: ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) > $o,Tllist: tLList446370796tllist @ A @ B,Tllist3: tLList446370796tllist @ A @ B] :
      ( ( R @ Tllist @ Tllist3 )
     => ( ! [Tllist4: tLList446370796tllist @ A @ B,Tllist5: tLList446370796tllist @ A @ B] :
            ( ( R @ Tllist4 @ Tllist5 )
           => ( ( ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
                = ( tLList1968894004s_TNil @ A @ B @ Tllist5 ) )
              & ( ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
               => ( ( tLList1968894004s_TNil @ A @ B @ Tllist5 )
                 => ( ( tLList2110128105rminal @ A @ B @ Tllist4 )
                    = ( tLList2110128105rminal @ A @ B @ Tllist5 ) ) ) )
              & ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
               => ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist5 )
                 => ( ( ( tLList_Mirabelle_thd @ A @ B @ Tllist4 )
                      = ( tLList_Mirabelle_thd @ A @ B @ Tllist5 ) )
                    & ( R @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist4 ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist5 ) ) ) ) ) ) )
       => ( Tllist = Tllist3 ) ) ) ).

% tllist.coinduct
thf(fact_73_tllist_Oexpand,axiom,
    ! [B: $tType,A: $tType,Tllist: tLList446370796tllist @ A @ B,Tllist3: tLList446370796tllist @ A @ B] :
      ( ( ( tLList1968894004s_TNil @ A @ B @ Tllist )
        = ( tLList1968894004s_TNil @ A @ B @ Tllist3 ) )
     => ( ( ( tLList1968894004s_TNil @ A @ B @ Tllist )
         => ( ( tLList1968894004s_TNil @ A @ B @ Tllist3 )
           => ( ( tLList2110128105rminal @ A @ B @ Tllist )
              = ( tLList2110128105rminal @ A @ B @ Tllist3 ) ) ) )
       => ( ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist )
           => ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist3 )
             => ( ( ( tLList_Mirabelle_thd @ A @ B @ Tllist )
                  = ( tLList_Mirabelle_thd @ A @ B @ Tllist3 ) )
                & ( ( tLList_Mirabelle_ttl @ A @ B @ Tllist )
                  = ( tLList_Mirabelle_ttl @ A @ B @ Tllist3 ) ) ) ) )
         => ( Tllist = Tllist3 ) ) ) ) ).

% tllist.expand
thf(fact_74_tllist_Osplit__sel__asm,axiom,
    ! [C: $tType,B: $tType,A: $tType,P: C > $o,F1: B > C,F2: A > ( tLList446370796tllist @ A @ B ) > C,Tllist: tLList446370796tllist @ A @ B] :
      ( ( P @ ( tLList200813139tllist @ B @ C @ A @ F1 @ F2 @ Tllist ) )
      = ( ~ ( ( ( Tllist
                = ( tLList57907754e_TNil @ B @ A @ ( tLList2110128105rminal @ A @ B @ Tllist ) ) )
              & ~ ( P @ ( F1 @ ( tLList2110128105rminal @ A @ B @ Tllist ) ) ) )
            | ( ( Tllist
                = ( tLList1992840728_TCons @ A @ B @ ( tLList_Mirabelle_thd @ A @ B @ Tllist ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist ) ) )
              & ~ ( P @ ( F2 @ ( tLList_Mirabelle_thd @ A @ B @ Tllist ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist ) ) ) ) ) ) ) ).

% tllist.split_sel_asm
thf(fact_75_tllist_Osplit__sel,axiom,
    ! [C: $tType,B: $tType,A: $tType,P: C > $o,F1: B > C,F2: A > ( tLList446370796tllist @ A @ B ) > C,Tllist: tLList446370796tllist @ A @ B] :
      ( ( P @ ( tLList200813139tllist @ B @ C @ A @ F1 @ F2 @ Tllist ) )
      = ( ( ( Tllist
            = ( tLList57907754e_TNil @ B @ A @ ( tLList2110128105rminal @ A @ B @ Tllist ) ) )
         => ( P @ ( F1 @ ( tLList2110128105rminal @ A @ B @ Tllist ) ) ) )
        & ( ( Tllist
            = ( tLList1992840728_TCons @ A @ B @ ( tLList_Mirabelle_thd @ A @ B @ Tllist ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist ) ) )
         => ( P @ ( F2 @ ( tLList_Mirabelle_thd @ A @ B @ Tllist ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist ) ) ) ) ) ) ).

% tllist.split_sel
thf(fact_76_terminal__TNil,axiom,
    ! [Aa: $tType,A: $tType,X1: A] :
      ( ( tLList2110128105rminal @ Aa @ A @ ( tLList57907754e_TNil @ A @ Aa @ X1 ) )
      = X1 ) ).

% terminal_TNil
thf(fact_77_tllist_Osel_I3_J,axiom,
    ! [B: $tType,A: $tType,X21: A,X22: tLList446370796tllist @ A @ B] :
      ( ( tLList_Mirabelle_thd @ A @ B @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) )
      = X21 ) ).

% tllist.sel(3)
thf(fact_78_unfold__tllist_Odisc_I1_J,axiom,
    ! [B: $tType,C: $tType,A: $tType,P4: A > $o,A2: A,G1: A > B,G212: A > C,G223: A > A] :
      ( ( P4 @ A2 )
     => ( tLList1968894004s_TNil @ C @ B @ ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 ) ) ) ).

% unfold_tllist.disc(1)
thf(fact_79_unfold__tllist_Odisc_I2_J,axiom,
    ! [B: $tType,C: $tType,A: $tType,P4: A > $o,A2: A,G1: A > B,G212: A > C,G223: A > A] :
      ( ~ ( P4 @ A2 )
     => ~ ( tLList1968894004s_TNil @ C @ B @ ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 ) ) ) ).

% unfold_tllist.disc(2)
thf(fact_80_tllist_Ocorec__disc_I1_J,axiom,
    ! [B: $tType,A: $tType,E: $tType,P4: E > $o,A2: E,G1: E > B,G212: E > A,Q222: E > $o,G2212: E > ( tLList446370796tllist @ A @ B ),G2222: E > E] :
      ( ( P4 @ A2 )
     => ( tLList1968894004s_TNil @ A @ B @ ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 ) ) ) ).

% tllist.corec_disc(1)
thf(fact_81_tllist_Ocorec__disc_I2_J,axiom,
    ! [B: $tType,A: $tType,E: $tType,P4: E > $o,A2: E,G1: E > B,G212: E > A,Q222: E > $o,G2212: E > ( tLList446370796tllist @ A @ B ),G2222: E > E] :
      ( ~ ( P4 @ A2 )
     => ~ ( tLList1968894004s_TNil @ A @ B @ ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 ) ) ) ).

% tllist.corec_disc(2)
thf(fact_82_tllist__all2__coinduct,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,X5: ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o,Xs: tLList446370796tllist @ A @ B,Ys: tLList446370796tllist @ C @ D,R: B > D > $o,P: A > C > $o] :
      ( ( X5 @ Xs @ Ys )
     => ( ! [Xs3: tLList446370796tllist @ A @ B,Ys3: tLList446370796tllist @ C @ D] :
            ( ( X5 @ Xs3 @ Ys3 )
           => ( ( ( tLList1968894004s_TNil @ A @ B @ Xs3 )
                = ( tLList1968894004s_TNil @ C @ D @ Ys3 ) )
              & ( ( tLList1968894004s_TNil @ A @ B @ Xs3 )
               => ( ( tLList1968894004s_TNil @ C @ D @ Ys3 )
                 => ( R @ ( tLList2110128105rminal @ A @ B @ Xs3 ) @ ( tLList2110128105rminal @ C @ D @ Ys3 ) ) ) )
              & ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs3 )
               => ( ~ ( tLList1968894004s_TNil @ C @ D @ Ys3 )
                 => ( ( P @ ( tLList_Mirabelle_thd @ A @ B @ Xs3 ) @ ( tLList_Mirabelle_thd @ C @ D @ Ys3 ) )
                    & ( ( X5 @ ( tLList_Mirabelle_ttl @ A @ B @ Xs3 ) @ ( tLList_Mirabelle_ttl @ C @ D @ Ys3 ) )
                      | ( tLList1380991092t_all2 @ A @ C @ B @ D @ P @ R @ ( tLList_Mirabelle_ttl @ A @ B @ Xs3 ) @ ( tLList_Mirabelle_ttl @ C @ D @ Ys3 ) ) ) ) ) ) ) )
       => ( tLList1380991092t_all2 @ A @ C @ B @ D @ P @ R @ Xs @ Ys ) ) ) ).

% tllist_all2_coinduct
thf(fact_83_tllist_Orel__coinduct,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,P: ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o,X: tLList446370796tllist @ A @ B,Y: tLList446370796tllist @ C @ D,R2: B > D > $o,R1: A > C > $o] :
      ( ( P @ X @ Y )
     => ( ! [Tllist4: tLList446370796tllist @ A @ B,Tllist5: tLList446370796tllist @ C @ D] :
            ( ( P @ Tllist4 @ Tllist5 )
           => ( ( ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
                = ( tLList1968894004s_TNil @ C @ D @ Tllist5 ) )
              & ( ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
               => ( ( tLList1968894004s_TNil @ C @ D @ Tllist5 )
                 => ( R2 @ ( tLList2110128105rminal @ A @ B @ Tllist4 ) @ ( tLList2110128105rminal @ C @ D @ Tllist5 ) ) ) )
              & ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist4 )
               => ( ~ ( tLList1968894004s_TNil @ C @ D @ Tllist5 )
                 => ( ( R1 @ ( tLList_Mirabelle_thd @ A @ B @ Tllist4 ) @ ( tLList_Mirabelle_thd @ C @ D @ Tllist5 ) )
                    & ( P @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist4 ) @ ( tLList_Mirabelle_ttl @ C @ D @ Tllist5 ) ) ) ) ) ) )
       => ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ X @ Y ) ) ) ).

% tllist.rel_coinduct
thf(fact_84_tllist_Orel__sel,axiom,
    ! [B: $tType,D: $tType,C: $tType,A: $tType] :
      ( ( tLList1380991092t_all2 @ A @ C @ B @ D )
      = ( ^ [R12: A > C > $o,R22: B > D > $o,A4: tLList446370796tllist @ A @ B,B6: tLList446370796tllist @ C @ D] :
            ( ( ( tLList1968894004s_TNil @ A @ B @ A4 )
              = ( tLList1968894004s_TNil @ C @ D @ B6 ) )
            & ( ( tLList1968894004s_TNil @ A @ B @ A4 )
             => ( ( tLList1968894004s_TNil @ C @ D @ B6 )
               => ( R22 @ ( tLList2110128105rminal @ A @ B @ A4 ) @ ( tLList2110128105rminal @ C @ D @ B6 ) ) ) )
            & ( ~ ( tLList1968894004s_TNil @ A @ B @ A4 )
             => ( ~ ( tLList1968894004s_TNil @ C @ D @ B6 )
               => ( ( R12 @ ( tLList_Mirabelle_thd @ A @ B @ A4 ) @ ( tLList_Mirabelle_thd @ C @ D @ B6 ) )
                  & ( tLList1380991092t_all2 @ A @ C @ B @ D @ R12 @ R22 @ ( tLList_Mirabelle_ttl @ A @ B @ A4 ) @ ( tLList_Mirabelle_ttl @ C @ D @ B6 ) ) ) ) ) ) ) ) ).

% tllist.rel_sel
thf(fact_85_tllist_Oexhaust__sel,axiom,
    ! [B: $tType,A: $tType,Tllist: tLList446370796tllist @ A @ B] :
      ( ( Tllist
       != ( tLList57907754e_TNil @ B @ A @ ( tLList2110128105rminal @ A @ B @ Tllist ) ) )
     => ( Tllist
        = ( tLList1992840728_TCons @ A @ B @ ( tLList_Mirabelle_thd @ A @ B @ Tllist ) @ ( tLList_Mirabelle_ttl @ A @ B @ Tllist ) ) ) ) ).

% tllist.exhaust_sel
thf(fact_86_unfold__tllist_Octr_I1_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,P4: A > $o,A2: A,G1: A > B,G212: A > C,G223: A > A] :
      ( ( P4 @ A2 )
     => ( ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 )
        = ( tLList57907754e_TNil @ B @ C @ ( G1 @ A2 ) ) ) ) ).

% unfold_tllist.ctr(1)
thf(fact_87_tllist_Osimps_I5_J,axiom,
    ! [A: $tType,C: $tType,B: $tType,F1: B > C,F2: A > ( tLList446370796tllist @ A @ B ) > C,X1: B] :
      ( ( tLList200813139tllist @ B @ C @ A @ F1 @ F2 @ ( tLList57907754e_TNil @ B @ A @ X1 ) )
      = ( F1 @ X1 ) ) ).

% tllist.simps(5)
thf(fact_88_tllist_Ocorec_I1_J,axiom,
    ! [A: $tType,B: $tType,E: $tType,P4: E > $o,A2: E,G1: E > B,G212: E > A,Q222: E > $o,G2212: E > ( tLList446370796tllist @ A @ B ),G2222: E > E] :
      ( ( P4 @ A2 )
     => ( ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 )
        = ( tLList57907754e_TNil @ B @ A @ ( G1 @ A2 ) ) ) ) ).

% tllist.corec(1)
thf(fact_89_unfold__tllist_Octr_I2_J,axiom,
    ! [B: $tType,C: $tType,A: $tType,P4: A > $o,A2: A,G1: A > B,G212: A > C,G223: A > A] :
      ( ~ ( P4 @ A2 )
     => ( ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 )
        = ( tLList1992840728_TCons @ C @ B @ ( G212 @ A2 ) @ ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ ( G223 @ A2 ) ) ) ) ) ).

% unfold_tllist.ctr(2)
thf(fact_90_tllist_Osimps_I6_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,F1: B > C,F2: A > ( tLList446370796tllist @ A @ B ) > C,X21: A,X22: tLList446370796tllist @ A @ B] :
      ( ( tLList200813139tllist @ B @ C @ A @ F1 @ F2 @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) )
      = ( F2 @ X21 @ X22 ) ) ).

% tllist.simps(6)
thf(fact_91_tllist_Ocorec_I2_J,axiom,
    ! [B: $tType,A: $tType,E: $tType,P4: E > $o,A2: E,G1: E > B,G212: E > A,Q222: E > $o,G2212: E > ( tLList446370796tllist @ A @ B ),G2222: E > E] :
      ( ~ ( P4 @ A2 )
     => ( ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 )
        = ( tLList1992840728_TCons @ A @ B @ ( G212 @ A2 ) @ ( if @ ( tLList446370796tllist @ A @ B ) @ ( Q222 @ A2 ) @ ( G2212 @ A2 ) @ ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ ( G2222 @ A2 ) ) ) ) ) ) ).

% tllist.corec(2)
thf(fact_92_unfold__tllist_Osimps_I5_J,axiom,
    ! [B: $tType,C: $tType,A: $tType,P4: A > $o,A2: A,G1: A > B,G212: A > C,G223: A > A] :
      ( ~ ( P4 @ A2 )
     => ( ( tLList_Mirabelle_ttl @ C @ B @ ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ A2 ) )
        = ( tLList636831159tllist @ A @ B @ C @ P4 @ G1 @ G212 @ G223 @ ( G223 @ A2 ) ) ) ) ).

% unfold_tllist.simps(5)
thf(fact_93_tllist_Ocorec__sel_I3_J,axiom,
    ! [B: $tType,A: $tType,E: $tType,P4: E > $o,A2: E,Q222: E > $o,G1: E > B,G212: E > A,G2212: E > ( tLList446370796tllist @ A @ B ),G2222: E > E] :
      ( ~ ( P4 @ A2 )
     => ( ( ( Q222 @ A2 )
         => ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 ) )
            = ( G2212 @ A2 ) ) )
        & ( ~ ( Q222 @ A2 )
         => ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ A2 ) )
            = ( tLList1614408749tllist @ E @ B @ A @ P4 @ G1 @ G212 @ Q222 @ G2212 @ G2222 @ ( G2222 @ A2 ) ) ) ) ) ) ).

% tllist.corec_sel(3)
thf(fact_94_tllist_Omap__sel_I1_J,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,A2: tLList446370796tllist @ A @ B,F1: A > C,F2: B > D] :
      ( ( tLList1968894004s_TNil @ A @ B @ A2 )
     => ( ( tLList2110128105rminal @ C @ D @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ A2 ) )
        = ( F2 @ ( tLList2110128105rminal @ A @ B @ A2 ) ) ) ) ).

% tllist.map_sel(1)
thf(fact_95_terminal__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList2110128105rminal @ A @ B )
      = ( tLList200813139tllist @ B @ B @ A
        @ ^ [X13: B] : X13
        @ ^ [X_dummy: A] : ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ A @ B ) > B ) ) ) ) ).

% terminal_def
thf(fact_96_tllist_Osel_I2_J,axiom,
    ! [A: $tType,Aa: $tType,X21: Aa,X22: tLList446370796tllist @ Aa @ A] :
      ( ( tLList2110128105rminal @ Aa @ A @ ( tLList1992840728_TCons @ Aa @ A @ X21 @ X22 ) )
      = ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ Aa @ A ) > A ) @ X22 ) ) ).

% tllist.sel(2)
thf(fact_97_terminal0__terminal,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ A @ B ) > B ) )
      = ( tLList2110128105rminal @ A @ B ) ) ).

% terminal0_terminal
thf(fact_98_set2__tllist__induct,axiom,
    ! [A: $tType,B: $tType,X: A,Xs: tLList446370796tllist @ B @ A,P: A > ( tLList446370796tllist @ B @ A ) > $o] :
      ( ( member @ A @ X @ ( tLList457864275tllist @ B @ A @ Xs ) )
     => ( ! [Xs3: tLList446370796tllist @ B @ A] :
            ( ( tLList1968894004s_TNil @ B @ A @ Xs3 )
           => ( P @ ( tLList2110128105rminal @ B @ A @ Xs3 ) @ Xs3 ) )
       => ( ! [Xs3: tLList446370796tllist @ B @ A,Y5: A] :
              ( ~ ( tLList1968894004s_TNil @ B @ A @ Xs3 )
             => ( ( member @ A @ Y5 @ ( tLList457864275tllist @ B @ A @ ( tLList_Mirabelle_ttl @ B @ A @ Xs3 ) ) )
               => ( ( P @ Y5 @ ( tLList_Mirabelle_ttl @ B @ A @ Xs3 ) )
                 => ( P @ Y5 @ Xs3 ) ) ) )
         => ( P @ X @ Xs ) ) ) ) ).

% set2_tllist_induct
thf(fact_99_tllist__set__induct,axiom,
    ! [B: $tType,A: $tType,X: A,Xs: tLList446370796tllist @ A @ B,P: A > ( tLList446370796tllist @ A @ B ) > $o] :
      ( ( member @ A @ X @ ( tLList1719791291e_tset @ A @ B @ Xs ) )
     => ( ! [Xs3: tLList446370796tllist @ A @ B] :
            ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs3 )
           => ( P @ ( tLList_Mirabelle_thd @ A @ B @ Xs3 ) @ Xs3 ) )
       => ( ! [Xs3: tLList446370796tllist @ A @ B,Y5: A] :
              ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs3 )
             => ( ( member @ A @ Y5 @ ( tLList1719791291e_tset @ A @ B @ ( tLList_Mirabelle_ttl @ A @ B @ Xs3 ) ) )
               => ( ( P @ Y5 @ ( tLList_Mirabelle_ttl @ A @ B @ Xs3 ) )
                 => ( P @ Y5 @ Xs3 ) ) ) )
         => ( P @ X @ Xs ) ) ) ) ).

% tllist_set_induct
thf(fact_100_tconcat__TCons,axiom,
    ! [B: $tType,A: $tType,B4: B,A2: coinductive_llist @ A,Tr: tLList446370796tllist @ ( coinductive_llist @ A ) @ B] :
      ( ( tLList365522113concat @ B @ A @ B4 @ ( tLList1992840728_TCons @ ( coinductive_llist @ A ) @ B @ A2 @ Tr ) )
      = ( tLList98099029ppendt @ A @ B @ A2 @ ( tLList365522113concat @ B @ A @ B4 @ Tr ) ) ) ).

% tconcat_TCons
thf(fact_101_tconcat_H__def,axiom,
    ! [A: $tType,B: $tType] :
      ( ( tLList1329345514concat @ B @ A )
      = ( ^ [B6: product_unit > B] : ( tLList365522113concat @ B @ A @ ( B6 @ product_Unity ) ) ) ) ).

% tconcat'_def
thf(fact_102_tllist_Orel__cong,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,X: tLList446370796tllist @ A @ B,Ya: tLList446370796tllist @ A @ B,Y: tLList446370796tllist @ C @ D,Xa: tLList446370796tllist @ C @ D,R1: A > C > $o,R1a: A > C > $o,R2: B > D > $o,R2a: B > D > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z12: A,Y12: C] :
              ( ( member @ A @ Z12 @ ( tLList1719791291e_tset @ A @ B @ Ya ) )
             => ( ( member @ C @ Y12 @ ( tLList1719791291e_tset @ C @ D @ Xa ) )
               => ( ( R1 @ Z12 @ Y12 )
                  = ( R1a @ Z12 @ Y12 ) ) ) )
         => ( ! [Z22: B,Y23: D] :
                ( ( member @ B @ Z22 @ ( tLList457864275tllist @ A @ B @ Ya ) )
               => ( ( member @ D @ Y23 @ ( tLList457864275tllist @ C @ D @ Xa ) )
                 => ( ( R2 @ Z22 @ Y23 )
                    = ( R2a @ Z22 @ Y23 ) ) ) )
           => ( ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ X @ Y )
              = ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1a @ R2a @ Ya @ Xa ) ) ) ) ) ) ).

% tllist.rel_cong
thf(fact_103_tllist_Orel__mono__strong,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R2: B > D > $o,X: tLList446370796tllist @ A @ B,Y: tLList446370796tllist @ C @ D,R1a: A > C > $o,R2a: B > D > $o] :
      ( ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 @ X @ Y )
     => ( ! [Z12: A,Y12: C] :
            ( ( member @ A @ Z12 @ ( tLList1719791291e_tset @ A @ B @ X ) )
           => ( ( member @ C @ Y12 @ ( tLList1719791291e_tset @ C @ D @ Y ) )
             => ( ( R1 @ Z12 @ Y12 )
               => ( R1a @ Z12 @ Y12 ) ) ) )
       => ( ! [Z22: B,Y23: D] :
              ( ( member @ B @ Z22 @ ( tLList457864275tllist @ A @ B @ X ) )
             => ( ( member @ D @ Y23 @ ( tLList457864275tllist @ C @ D @ Y ) )
               => ( ( R2 @ Z22 @ Y23 )
                 => ( R2a @ Z22 @ Y23 ) ) ) )
         => ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1a @ R2a @ X @ Y ) ) ) ) ).

% tllist.rel_mono_strong
thf(fact_104_tllist_Orel__refl__strong,axiom,
    ! [B: $tType,A: $tType,X: tLList446370796tllist @ A @ B,R1a: A > A > $o,R2a: B > B > $o] :
      ( ! [Z12: A] :
          ( ( member @ A @ Z12 @ ( tLList1719791291e_tset @ A @ B @ X ) )
         => ( R1a @ Z12 @ Z12 ) )
     => ( ! [Z22: B] :
            ( ( member @ B @ Z22 @ ( tLList457864275tllist @ A @ B @ X ) )
           => ( R2a @ Z22 @ Z22 ) )
       => ( tLList1380991092t_all2 @ A @ A @ B @ B @ R1a @ R2a @ X @ X ) ) ) ).

% tllist.rel_refl_strong
thf(fact_105_tllist_Omap__cong,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,X: tLList446370796tllist @ A @ B,Ya: tLList446370796tllist @ A @ B,F1: A > C,G1: A > C,F2: B > D,G2: B > D] :
      ( ( X = Ya )
     => ( ! [Z12: A] :
            ( ( member @ A @ Z12 @ ( tLList1719791291e_tset @ A @ B @ Ya ) )
           => ( ( F1 @ Z12 )
              = ( G1 @ Z12 ) ) )
       => ( ! [Z22: B] :
              ( ( member @ B @ Z22 @ ( tLList457864275tllist @ A @ B @ Ya ) )
             => ( ( F2 @ Z22 )
                = ( G2 @ Z22 ) ) )
         => ( ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ X )
            = ( tLList1669959861e_tmap @ A @ C @ B @ D @ G1 @ G2 @ Ya ) ) ) ) ) ).

% tllist.map_cong
thf(fact_106_tllist_Omap__cong0,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,X: tLList446370796tllist @ A @ B,F1: A > C,G1: A > C,F2: B > D,G2: B > D] :
      ( ! [Z12: A] :
          ( ( member @ A @ Z12 @ ( tLList1719791291e_tset @ A @ B @ X ) )
         => ( ( F1 @ Z12 )
            = ( G1 @ Z12 ) ) )
     => ( ! [Z22: B] :
            ( ( member @ B @ Z22 @ ( tLList457864275tllist @ A @ B @ X ) )
           => ( ( F2 @ Z22 )
              = ( G2 @ Z22 ) ) )
       => ( ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ X )
          = ( tLList1669959861e_tmap @ A @ C @ B @ D @ G1 @ G2 @ X ) ) ) ) ).

% tllist.map_cong0
thf(fact_107_tllist_Oinj__map__strong,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,X: tLList446370796tllist @ A @ B,Xa: tLList446370796tllist @ A @ B,F1: A > C,F1a: A > C,F2: B > D,F2a: B > D] :
      ( ! [Z12: A,Z1a: A] :
          ( ( member @ A @ Z12 @ ( tLList1719791291e_tset @ A @ B @ X ) )
         => ( ( member @ A @ Z1a @ ( tLList1719791291e_tset @ A @ B @ Xa ) )
           => ( ( ( F1 @ Z12 )
                = ( F1a @ Z1a ) )
             => ( Z12 = Z1a ) ) ) )
     => ( ! [Z22: B,Z2a: B] :
            ( ( member @ B @ Z22 @ ( tLList457864275tllist @ A @ B @ X ) )
           => ( ( member @ B @ Z2a @ ( tLList457864275tllist @ A @ B @ Xa ) )
             => ( ( ( F2 @ Z22 )
                  = ( F2a @ Z2a ) )
               => ( Z22 = Z2a ) ) ) )
       => ( ( ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F2 @ X )
            = ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1a @ F2a @ Xa ) )
         => ( X = Xa ) ) ) ) ).

% tllist.inj_map_strong
thf(fact_108_tllist_Opred__mono__strong,axiom,
    ! [B: $tType,A: $tType,P1: A > $o,P2: B > $o,X: tLList446370796tllist @ A @ B,P1a: A > $o,P2a: B > $o] :
      ( ( tLList11265572tllist @ A @ B @ P1 @ P2 @ X )
     => ( ! [Z12: A] :
            ( ( member @ A @ Z12 @ ( tLList1719791291e_tset @ A @ B @ X ) )
           => ( ( P1 @ Z12 )
             => ( P1a @ Z12 ) ) )
       => ( ! [Z22: B] :
              ( ( member @ B @ Z22 @ ( tLList457864275tllist @ A @ B @ X ) )
             => ( ( P2 @ Z22 )
               => ( P2a @ Z22 ) ) )
         => ( tLList11265572tllist @ A @ B @ P1a @ P2a @ X ) ) ) ) ).

% tllist.pred_mono_strong
thf(fact_109_tllist_Opred__cong,axiom,
    ! [B: $tType,A: $tType,X: tLList446370796tllist @ A @ B,Ya: tLList446370796tllist @ A @ B,P1: A > $o,P1a: A > $o,P2: B > $o,P2a: B > $o] :
      ( ( X = Ya )
     => ( ! [Z12: A] :
            ( ( member @ A @ Z12 @ ( tLList1719791291e_tset @ A @ B @ Ya ) )
           => ( ( P1 @ Z12 )
              = ( P1a @ Z12 ) ) )
       => ( ! [Z22: B] :
              ( ( member @ B @ Z22 @ ( tLList457864275tllist @ A @ B @ Ya ) )
             => ( ( P2 @ Z22 )
                = ( P2a @ Z22 ) ) )
         => ( ( tLList11265572tllist @ A @ B @ P1 @ P2 @ X )
            = ( tLList11265572tllist @ A @ B @ P1a @ P2a @ Ya ) ) ) ) ) ).

% tllist.pred_cong
thf(fact_110_tllist_Oset__cases_I1_J,axiom,
    ! [B: $tType,A: $tType,E2: A,A2: tLList446370796tllist @ A @ B] :
      ( ( member @ A @ E2 @ ( tLList1719791291e_tset @ A @ B @ A2 ) )
     => ( ! [Z22: tLList446370796tllist @ A @ B] :
            ( A2
           != ( tLList1992840728_TCons @ A @ B @ E2 @ Z22 ) )
       => ~ ! [Z12: A,Z22: tLList446370796tllist @ A @ B] :
              ( ( A2
                = ( tLList1992840728_TCons @ A @ B @ Z12 @ Z22 ) )
             => ~ ( member @ A @ E2 @ ( tLList1719791291e_tset @ A @ B @ Z22 ) ) ) ) ) ).

% tllist.set_cases(1)
thf(fact_111_tllist_Oset__induct_I1_J,axiom,
    ! [B: $tType,A: $tType,X: A,A2: tLList446370796tllist @ A @ B,P: A > ( tLList446370796tllist @ A @ B ) > $o] :
      ( ( member @ A @ X @ ( tLList1719791291e_tset @ A @ B @ A2 ) )
     => ( ! [Z12: A,Z22: tLList446370796tllist @ A @ B] : ( P @ Z12 @ ( tLList1992840728_TCons @ A @ B @ Z12 @ Z22 ) )
       => ( ! [Z12: A,Z22: tLList446370796tllist @ A @ B,Xa2: A] :
              ( ( member @ A @ Xa2 @ ( tLList1719791291e_tset @ A @ B @ Z22 ) )
             => ( ( P @ Xa2 @ Z22 )
               => ( P @ Xa2 @ ( tLList1992840728_TCons @ A @ B @ Z12 @ Z22 ) ) ) )
         => ( P @ X @ A2 ) ) ) ) ).

% tllist.set_induct(1)
thf(fact_112_tllist_Oset__intros_I2_J,axiom,
    ! [B: $tType,A: $tType,X: A,A22: tLList446370796tllist @ A @ B,A1: A] :
      ( ( member @ A @ X @ ( tLList1719791291e_tset @ A @ B @ A22 ) )
     => ( member @ A @ X @ ( tLList1719791291e_tset @ A @ B @ ( tLList1992840728_TCons @ A @ B @ A1 @ A22 ) ) ) ) ).

% tllist.set_intros(2)
thf(fact_113_tllist_Oset__intros_I1_J,axiom,
    ! [B: $tType,A: $tType,A1: A,A22: tLList446370796tllist @ A @ B] : ( member @ A @ A1 @ ( tLList1719791291e_tset @ A @ B @ ( tLList1992840728_TCons @ A @ B @ A1 @ A22 ) ) ) ).

% tllist.set_intros(1)
thf(fact_114_in__tset__ttlD,axiom,
    ! [B: $tType,A: $tType,X: A,Xs: tLList446370796tllist @ A @ B] :
      ( ( member @ A @ X @ ( tLList1719791291e_tset @ A @ B @ ( tLList_Mirabelle_ttl @ A @ B @ Xs ) ) )
     => ( member @ A @ X @ ( tLList1719791291e_tset @ A @ B @ Xs ) ) ) ).

% in_tset_ttlD
thf(fact_115_tllist_Oset__intros_I3_J,axiom,
    ! [A: $tType,B: $tType,Aa2: B] : ( member @ B @ Aa2 @ ( tLList457864275tllist @ A @ B @ ( tLList57907754e_TNil @ B @ A @ Aa2 ) ) ) ).

% tllist.set_intros(3)
thf(fact_116_tllist_Osimps_I23_J,axiom,
    ! [B: $tType,A: $tType,X21: A,X22: tLList446370796tllist @ A @ B] :
      ( ( tLList457864275tllist @ A @ B @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) )
      = ( tLList457864275tllist @ A @ B @ X22 ) ) ).

% tllist.simps(23)
thf(fact_117_tllist_Oset__intros_I4_J,axiom,
    ! [B: $tType,A: $tType,Xc: B,A2a: tLList446370796tllist @ A @ B,A1a: A] :
      ( ( member @ B @ Xc @ ( tLList457864275tllist @ A @ B @ A2a ) )
     => ( member @ B @ Xc @ ( tLList457864275tllist @ A @ B @ ( tLList1992840728_TCons @ A @ B @ A1a @ A2a ) ) ) ) ).

% tllist.set_intros(4)
thf(fact_118_tllist_Odisc__eq__case_I2_J,axiom,
    ! [B: $tType,A: $tType,Tllist: tLList446370796tllist @ A @ B] :
      ( ( ~ ( tLList1968894004s_TNil @ A @ B @ Tllist ) )
      = ( tLList200813139tllist @ B @ $o @ A
        @ ^ [Uu: B] : $false
        @ ^ [Uu: A,Uv: tLList446370796tllist @ A @ B] : $true
        @ Tllist ) ) ).

% tllist.disc_eq_case(2)
thf(fact_119_tllist_Odisc__eq__case_I1_J,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1968894004s_TNil @ A @ B )
      = ( tLList200813139tllist @ B @ $o @ A
        @ ^ [Uu: B] : $true
        @ ^ [Uu: A,Uv: tLList446370796tllist @ A @ B] : $false ) ) ).

% tllist.disc_eq_case(1)
thf(fact_120_tllist_Oset__sel_I2_J,axiom,
    ! [B: $tType,A: $tType,A2: tLList446370796tllist @ A @ B,X: A] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ A2 )
     => ( ( member @ A @ X @ ( tLList1719791291e_tset @ A @ B @ ( tLList_Mirabelle_ttl @ A @ B @ A2 ) ) )
       => ( member @ A @ X @ ( tLList1719791291e_tset @ A @ B @ A2 ) ) ) ) ).

% tllist.set_sel(2)
thf(fact_121_tllist_Oset__sel_I1_J,axiom,
    ! [B: $tType,A: $tType,A2: tLList446370796tllist @ A @ B] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ A2 )
     => ( member @ A @ ( tLList_Mirabelle_thd @ A @ B @ A2 ) @ ( tLList1719791291e_tset @ A @ B @ A2 ) ) ) ).

% tllist.set_sel(1)
thf(fact_122_tllist_Oset__sel_I3_J,axiom,
    ! [B: $tType,A: $tType,A2: tLList446370796tllist @ A @ B] :
      ( ( tLList1968894004s_TNil @ A @ B @ A2 )
     => ( member @ B @ ( tLList2110128105rminal @ A @ B @ A2 ) @ ( tLList457864275tllist @ A @ B @ A2 ) ) ) ).

% tllist.set_sel(3)
thf(fact_123_tllist_Oset__cases_I2_J,axiom,
    ! [B: $tType,A: $tType,E2: B,A2: tLList446370796tllist @ A @ B] :
      ( ( member @ B @ E2 @ ( tLList457864275tllist @ A @ B @ A2 ) )
     => ( ( A2
         != ( tLList57907754e_TNil @ B @ A @ E2 ) )
       => ~ ! [Z12: A,Z22: tLList446370796tllist @ A @ B] :
              ( ( A2
                = ( tLList1992840728_TCons @ A @ B @ Z12 @ Z22 ) )
             => ~ ( member @ B @ E2 @ ( tLList457864275tllist @ A @ B @ Z22 ) ) ) ) ) ).

% tllist.set_cases(2)
thf(fact_124_tllist_Oset__induct_I2_J,axiom,
    ! [A: $tType,Aa: $tType,X: A,A2: tLList446370796tllist @ Aa @ A,P: A > ( tLList446370796tllist @ Aa @ A ) > $o] :
      ( ( member @ A @ X @ ( tLList457864275tllist @ Aa @ A @ A2 ) )
     => ( ! [Z4: A] : ( P @ Z4 @ ( tLList57907754e_TNil @ A @ Aa @ Z4 ) )
       => ( ! [Z12: Aa,Z22: tLList446370796tllist @ Aa @ A,Xb: A] :
              ( ( member @ A @ Xb @ ( tLList457864275tllist @ Aa @ A @ Z22 ) )
             => ( ( P @ Xb @ Z22 )
               => ( P @ Xb @ ( tLList1992840728_TCons @ Aa @ A @ Z12 @ Z22 ) ) ) )
         => ( P @ X @ A2 ) ) ) ) ).

% tllist.set_induct(2)
thf(fact_125_tllist_Oset__sel_I4_J,axiom,
    ! [B: $tType,A: $tType,A2: tLList446370796tllist @ A @ B,Xc: B] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ A2 )
     => ( ( member @ B @ Xc @ ( tLList457864275tllist @ A @ B @ ( tLList_Mirabelle_ttl @ A @ B @ A2 ) ) )
       => ( member @ B @ Xc @ ( tLList457864275tllist @ A @ B @ A2 ) ) ) ) ).

% tllist.set_sel(4)
thf(fact_126_tconcat_H__code_I2_J,axiom,
    ! [B: $tType,C: $tType,B4: product_unit > B,A2: coinductive_llist @ C,Tr: tLList446370796tllist @ ( coinductive_llist @ C ) @ B] :
      ( ( tLList1329345514concat @ B @ C @ B4 @ ( tLList1992840728_TCons @ ( coinductive_llist @ C ) @ B @ A2 @ Tr ) )
      = ( tLList98099029ppendt @ C @ B @ A2 @ ( tLList1329345514concat @ B @ C @ B4 @ Tr ) ) ) ).

% tconcat'_code(2)
thf(fact_127_unit__abs__eta__conv,axiom,
    ! [A: $tType,F3: product_unit > A] :
      ( ( ^ [U: product_unit] : ( F3 @ product_Unity ) )
      = F3 ) ).

% unit_abs_eta_conv
thf(fact_128_is__TNil__tfilter,axiom,
    ! [B: $tType,A: $tType,Y: B,P: A > $o,Xs: tLList446370796tllist @ A @ B] :
      ( ( tLList1968894004s_TNil @ A @ B @ ( tLList1813626245filter @ B @ A @ Y @ P @ Xs ) )
      = ( ! [X2: A] :
            ( ( member @ A @ X2 @ ( tLList1719791291e_tset @ A @ B @ Xs ) )
           => ~ ( P @ X2 ) ) ) ) ).

% is_TNil_tfilter
thf(fact_129_old_Ounit_Oexhaust,axiom,
    ! [Y: product_unit] : Y = product_Unity ).

% old.unit.exhaust
thf(fact_130_old_Ounit_Oinducts,axiom,
    ! [P: product_unit > $o,Unit: product_unit] :
      ( ( P @ product_Unity )
     => ( P @ Unit ) ) ).

% old.unit.inducts
thf(fact_131_unit__all__impI,axiom,
    ! [P: product_unit > $o,Q: product_unit > $o] :
      ( ( ( P @ product_Unity )
       => ( Q @ product_Unity ) )
     => ! [X6: product_unit] :
          ( ( P @ X6 )
         => ( Q @ X6 ) ) ) ).

% unit_all_impI
thf(fact_132_tfilter__TNil,axiom,
    ! [A: $tType,B: $tType,B5: B,P: A > $o,B4: B] :
      ( ( tLList1813626245filter @ B @ A @ B5 @ P @ ( tLList57907754e_TNil @ B @ A @ B4 ) )
      = ( tLList57907754e_TNil @ B @ A @ B4 ) ) ).

% tfilter_TNil
thf(fact_133_tfilter__TCons,axiom,
    ! [B: $tType,A: $tType,P: A > $o,A2: A,B4: B,Tr: tLList446370796tllist @ A @ B] :
      ( ( ( P @ A2 )
       => ( ( tLList1813626245filter @ B @ A @ B4 @ P @ ( tLList1992840728_TCons @ A @ B @ A2 @ Tr ) )
          = ( tLList1992840728_TCons @ A @ B @ A2 @ ( tLList1813626245filter @ B @ A @ B4 @ P @ Tr ) ) ) )
      & ( ~ ( P @ A2 )
       => ( ( tLList1813626245filter @ B @ A @ B4 @ P @ ( tLList1992840728_TCons @ A @ B @ A2 @ Tr ) )
          = ( tLList1813626245filter @ B @ A @ B4 @ P @ Tr ) ) ) ) ).

% tfilter_TCons
thf(fact_134_eq__sym__Unity__conv,axiom,
    ! [X: $o] :
      ( ( X
        = ( product_Unity = product_Unity ) )
      = X ) ).

% eq_sym_Unity_conv
thf(fact_135_old_Ounit_Orec,axiom,
    ! [T: $tType,F1: T] :
      ( ( product_rec_unit @ T @ F1 @ product_Unity )
      = F1 ) ).

% old.unit.rec
thf(fact_136_default__unit__def,axiom,
    ( ( default_default @ product_unit )
    = product_Unity ) ).

% default_unit_def
thf(fact_137_tfilter_H__def,axiom,
    ! [A: $tType,B: $tType] :
      ( ( tLList1122525870filter @ B @ A )
      = ( ^ [B6: product_unit > B] : ( tLList1813626245filter @ B @ A @ ( B6 @ product_Unity ) ) ) ) ).

% tfilter'_def
thf(fact_138_tfilter__code,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1813626245filter @ A @ B )
      = ( ^ [B6: A] :
            ( tLList1122525870filter @ A @ B
            @ ^ [Uu: product_unit] : B6 ) ) ) ).

% tfilter_code
thf(fact_139_tfilter_H__code_I1_J,axiom,
    ! [A: $tType,B: $tType,B5: product_unit > B,P: A > $o,B4: B] :
      ( ( tLList1122525870filter @ B @ A @ B5 @ P @ ( tLList57907754e_TNil @ B @ A @ B4 ) )
      = ( tLList57907754e_TNil @ B @ A @ B4 ) ) ).

% tfilter'_code(1)
thf(fact_140_tfilter_H__code_I2_J,axiom,
    ! [B: $tType,A: $tType,P: A > $o,A2: A,B5: product_unit > B,Tr: tLList446370796tllist @ A @ B] :
      ( ( ( P @ A2 )
       => ( ( tLList1122525870filter @ B @ A @ B5 @ P @ ( tLList1992840728_TCons @ A @ B @ A2 @ Tr ) )
          = ( tLList1992840728_TCons @ A @ B @ A2 @ ( tLList1122525870filter @ B @ A @ B5 @ P @ Tr ) ) ) )
      & ( ~ ( P @ A2 )
       => ( ( tLList1122525870filter @ B @ A @ B5 @ P @ ( tLList1992840728_TCons @ A @ B @ A2 @ Tr ) )
          = ( tLList1122525870filter @ B @ A @ B5 @ P @ Tr ) ) ) ) ).

% tfilter'_code(2)
thf(fact_141_tllist_Opred__set,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList11265572tllist @ A @ B )
      = ( ^ [P12: A > $o,P22: B > $o,X2: tLList446370796tllist @ A @ B] :
            ( ! [Y2: A] :
                ( ( member @ A @ Y2 @ ( tLList1719791291e_tset @ A @ B @ X2 ) )
               => ( P12 @ Y2 ) )
            & ! [Y2: B] :
                ( ( member @ B @ Y2 @ ( tLList457864275tllist @ A @ B @ X2 ) )
               => ( P22 @ Y2 ) ) ) ) ) ).

% tllist.pred_set
thf(fact_142_old_Ounit_Ocase,axiom,
    ! [A: $tType,F3: A] :
      ( ( product_case_unit @ A @ F3 @ product_Unity )
      = F3 ) ).

% old.unit.case
thf(fact_143_lappendt__LCons,axiom,
    ! [B: $tType,A: $tType,X: A,Xs: coinductive_llist @ A,Tr: tLList446370796tllist @ A @ B] :
      ( ( tLList98099029ppendt @ A @ B @ ( coinductive_LCons @ A @ X @ Xs ) @ Tr )
      = ( tLList1992840728_TCons @ A @ B @ X @ ( tLList98099029ppendt @ A @ B @ Xs @ Tr ) ) ) ).

% lappendt_LCons
thf(fact_144_terminal__lappendt__lfinite,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,Ys: tLList446370796tllist @ A @ B] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( ( tLList2110128105rminal @ A @ B @ ( tLList98099029ppendt @ A @ B @ Xs @ Ys ) )
        = ( tLList2110128105rminal @ A @ B @ Ys ) ) ) ).

% terminal_lappendt_lfinite
thf(fact_145_unit_Ocase__distrib,axiom,
    ! [A: $tType,B: $tType,H: A > B,F3: A,Unit: product_unit] :
      ( ( H @ ( product_case_unit @ A @ F3 @ Unit ) )
      = ( product_case_unit @ B @ ( H @ F3 ) @ Unit ) ) ).

% unit.case_distrib
thf(fact_146_case__unit__Unity,axiom,
    ! [A: $tType] :
      ( ( product_case_unit @ A )
      = ( ^ [F4: A,U: product_unit] : F4 ) ) ).

% case_unit_Unity
thf(fact_147_tfilter__empty__conv,axiom,
    ! [A: $tType,B: $tType,Y: B,P: A > $o,Xs: tLList446370796tllist @ A @ B,Y6: B] :
      ( ( ( tLList1813626245filter @ B @ A @ Y @ P @ Xs )
        = ( tLList57907754e_TNil @ B @ A @ Y6 ) )
      = ( ! [X2: A] :
            ( ( member @ A @ X2 @ ( tLList1719791291e_tset @ A @ B @ Xs ) )
           => ~ ( P @ X2 ) )
        & ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
         => ( ( tLList2110128105rminal @ A @ B @ Xs )
            = Y6 ) )
        & ( ~ ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
         => ( Y = Y6 ) ) ) ) ).

% tfilter_empty_conv
thf(fact_148_terminal__tmap,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B,F3: A > D,G: B > C] :
      ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
     => ( ( tLList2110128105rminal @ D @ C @ ( tLList1669959861e_tmap @ A @ D @ B @ C @ F3 @ G @ Xs ) )
        = ( G @ ( tLList2110128105rminal @ A @ B @ Xs ) ) ) ) ).

% terminal_tmap
thf(fact_149_tfilter__eq__TConsD,axiom,
    ! [B: $tType,A: $tType,A2: B,P: A > $o,Ys: tLList446370796tllist @ A @ B,X: A,Xs: tLList446370796tllist @ A @ B] :
      ( ( ( tLList1813626245filter @ B @ A @ A2 @ P @ Ys )
        = ( tLList1992840728_TCons @ A @ B @ X @ Xs ) )
     => ? [Us: coinductive_llist @ A,Vs: tLList446370796tllist @ A @ B] :
          ( ( Ys
            = ( tLList98099029ppendt @ A @ B @ Us @ ( tLList1992840728_TCons @ A @ B @ X @ Vs ) ) )
          & ( coinductive_lfinite @ A @ Us )
          & ! [X6: A] :
              ( ( member @ A @ X6 @ ( coinductive_lset @ A @ Us ) )
             => ~ ( P @ X6 ) )
          & ( P @ X )
          & ( Xs
            = ( tLList1813626245filter @ B @ A @ A2 @ P @ Vs ) ) ) ) ).

% tfilter_eq_TConsD
thf(fact_150_llist__of__tllist__TCons,axiom,
    ! [B: $tType,A: $tType,Xa: A,X: tLList446370796tllist @ A @ B] :
      ( ( tLList798109904tllist @ A @ B @ ( tLList1992840728_TCons @ A @ B @ Xa @ X ) )
      = ( coinductive_LCons @ A @ Xa @ ( tLList798109904tllist @ A @ B @ X ) ) ) ).

% llist_of_tllist_TCons
thf(fact_151_lset__llist__of__tllist,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( coinductive_lset @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
      = ( tLList1719791291e_tset @ A @ B @ Xs ) ) ).

% lset_llist_of_tllist
thf(fact_152_is__TNil__tfinite,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs ) ) ) ).

% is_TNil_tfinite
thf(fact_153_tfinite__induct,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B,P: ( tLList446370796tllist @ A @ B ) > $o] :
      ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
     => ( ! [Y5: B] : ( P @ ( tLList57907754e_TNil @ B @ A @ Y5 ) )
       => ( ! [X3: A,Xs3: tLList446370796tllist @ A @ B] :
              ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs3 ) )
             => ( ( P @ Xs3 )
               => ( P @ ( tLList1992840728_TCons @ A @ B @ X3 @ Xs3 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% tfinite_induct
thf(fact_154_tset__lappendt__lfinite,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,Ys: tLList446370796tllist @ A @ B] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( ( tLList1719791291e_tset @ A @ B @ ( tLList98099029ppendt @ A @ B @ Xs @ Ys ) )
        = ( sup_sup @ ( set @ A ) @ ( coinductive_lset @ A @ Xs ) @ ( tLList1719791291e_tset @ A @ B @ Ys ) ) ) ) ).

% tset_lappendt_lfinite
thf(fact_155_tfinite__tappend,axiom,
    ! [B: $tType,C: $tType,A: $tType,Xs: tLList446370796tllist @ A @ C,F3: C > ( tLList446370796tllist @ A @ B )] :
      ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ ( tLList192138471append @ A @ C @ B @ Xs @ F3 ) ) )
      = ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ C @ Xs ) )
        & ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ ( F3 @ ( tLList2110128105rminal @ A @ C @ Xs ) ) ) ) ) ) ).

% tfinite_tappend
thf(fact_156_terminal__tappend,axiom,
    ! [A: $tType,B: $tType,Xs: tLList446370796tllist @ B @ A,F3: A > ( tLList446370796tllist @ B @ A )] :
      ( ( ( coinductive_lfinite @ B @ ( tLList798109904tllist @ B @ A @ Xs ) )
       => ( ( tLList2110128105rminal @ B @ A @ ( tLList192138471append @ B @ A @ A @ Xs @ F3 ) )
          = ( tLList2110128105rminal @ B @ A @ ( F3 @ ( tLList2110128105rminal @ B @ A @ Xs ) ) ) ) )
      & ( ~ ( coinductive_lfinite @ B @ ( tLList798109904tllist @ B @ A @ Xs ) )
       => ( ( tLList2110128105rminal @ B @ A @ ( tLList192138471append @ B @ A @ A @ Xs @ F3 ) )
          = ( tLList2110128105rminal @ B @ A @ Xs ) ) ) ) ).

% terminal_tappend
thf(fact_157_tappend__TNil2,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( tLList192138471append @ A @ B @ B @ Xs @ ( tLList57907754e_TNil @ B @ A ) )
      = Xs ) ).

% tappend_TNil2
thf(fact_158_tappend__TNil,axiom,
    ! [A: $tType,B: $tType,C: $tType,B4: C,F3: C > ( tLList446370796tllist @ A @ B )] :
      ( ( tLList192138471append @ A @ C @ B @ ( tLList57907754e_TNil @ C @ A @ B4 ) @ F3 )
      = ( F3 @ B4 ) ) ).

% tappend_TNil
thf(fact_159_tappend__TCons,axiom,
    ! [B: $tType,A: $tType,C: $tType,A2: A,Tr: tLList446370796tllist @ A @ C,F3: C > ( tLList446370796tllist @ A @ B )] :
      ( ( tLList192138471append @ A @ C @ B @ ( tLList1992840728_TCons @ A @ C @ A2 @ Tr ) @ F3 )
      = ( tLList1992840728_TCons @ A @ B @ A2 @ ( tLList192138471append @ A @ C @ B @ Tr @ F3 ) ) ) ).

% tappend_TCons
thf(fact_160_tappend__assoc,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,Xs: tLList446370796tllist @ A @ D,F3: D > ( tLList446370796tllist @ A @ C ),G: C > ( tLList446370796tllist @ A @ B )] :
      ( ( tLList192138471append @ A @ C @ B @ ( tLList192138471append @ A @ D @ C @ Xs @ F3 ) @ G )
      = ( tLList192138471append @ A @ D @ B @ Xs
        @ ^ [B6: D] : ( tLList192138471append @ A @ C @ B @ ( F3 @ B6 ) @ G ) ) ) ).

% tappend_assoc
thf(fact_161_tappend__inf,axiom,
    ! [C: $tType,B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B,F3: B > ( tLList446370796tllist @ A @ C )] :
      ( ~ ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
     => ( ( tLList192138471append @ A @ B @ C @ Xs @ F3 )
        = ( tLList222516140_tcast @ A @ B @ C @ Xs ) ) ) ).

% tappend_inf
thf(fact_162_Collect__disj__eq,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ( collect @ A
        @ ^ [X2: A] :
            ( ( P @ X2 )
            | ( Q @ X2 ) ) )
      = ( sup_sup @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) ) ) ).

% Collect_disj_eq
thf(fact_163_Un__def,axiom,
    ! [A: $tType] :
      ( ( sup_sup @ ( set @ A ) )
      = ( ^ [A5: set @ A,B8: set @ A] :
            ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ A5 )
                | ( member @ A @ X2 @ B8 ) ) ) ) ) ).

% Un_def
thf(fact_164_lhd__llist__of__tllist,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( ( coinductive_lhd @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
        = ( tLList_Mirabelle_thd @ A @ B @ Xs ) ) ) ).

% lhd_llist_of_tllist
thf(fact_165_terminal__tinfinite,axiom,
    ! [A: $tType,B: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ~ ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
     => ( ( tLList2110128105rminal @ A @ B @ Xs )
        = ( undefined @ B ) ) ) ).

% terminal_tinfinite
thf(fact_166_llist__of__tllist__inverse,axiom,
    ! [B: $tType,A: $tType,B4: tLList446370796tllist @ A @ B] :
      ( ( tLList1672613558_llist @ B @ A @ ( tLList2110128105rminal @ A @ B @ B4 ) @ ( tLList798109904tllist @ A @ B @ B4 ) )
      = B4 ) ).

% llist_of_tllist_inverse
thf(fact_167_tllist__of__llist__inject,axiom,
    ! [A: $tType,B: $tType,B4: B,Xs: coinductive_llist @ A,C2: B,Ys: coinductive_llist @ A] :
      ( ( ( tLList1672613558_llist @ B @ A @ B4 @ Xs )
        = ( tLList1672613558_llist @ B @ A @ C2 @ Ys ) )
      = ( ( Xs = Ys )
        & ( ( coinductive_lfinite @ A @ Ys )
         => ( B4 = C2 ) ) ) ) ).

% tllist_of_llist_inject
thf(fact_168_tllist__of__llist__inverse,axiom,
    ! [B: $tType,A: $tType,B4: B,Xs: coinductive_llist @ A] :
      ( ( tLList798109904tllist @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
      = Xs ) ).

% tllist_of_llist_inverse
thf(fact_169_tllist__of__llist__LCons,axiom,
    ! [B: $tType,A: $tType,B4: B,Xa: A,X: coinductive_llist @ A] :
      ( ( tLList1672613558_llist @ B @ A @ B4 @ ( coinductive_LCons @ A @ Xa @ X ) )
      = ( tLList1992840728_TCons @ A @ B @ Xa @ ( tLList1672613558_llist @ B @ A @ B4 @ X ) ) ) ).

% tllist_of_llist_LCons
thf(fact_170_terminal__tllist__of__llist__lfinite,axiom,
    ! [A: $tType,B: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( ( tLList2110128105rminal @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
        = B4 ) ) ).

% terminal_tllist_of_llist_lfinite
thf(fact_171_tset__tllist__of__llist,axiom,
    ! [B: $tType,A: $tType,B4: B,Xs: coinductive_llist @ A] :
      ( ( tLList1719791291e_tset @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
      = ( coinductive_lset @ A @ Xs ) ) ).

% tset_tllist_of_llist
thf(fact_172_thd__tllist__of__llist,axiom,
    ! [B: $tType,A: $tType,B4: B,Xs: coinductive_llist @ A] :
      ( ( tLList_Mirabelle_thd @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
      = ( coinductive_lhd @ A @ Xs ) ) ).

% thd_tllist_of_llist
thf(fact_173_terminal__tllist__of__llist,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ B,Y: A] :
      ( ( ( coinductive_lfinite @ B @ Xs )
       => ( ( tLList2110128105rminal @ B @ A @ ( tLList1672613558_llist @ A @ B @ Y @ Xs ) )
          = Y ) )
      & ( ~ ( coinductive_lfinite @ B @ Xs )
       => ( ( tLList2110128105rminal @ B @ A @ ( tLList1672613558_llist @ A @ B @ Y @ Xs ) )
          = ( undefined @ A ) ) ) ) ).

% terminal_tllist_of_llist
thf(fact_174_tllist__of__llist__cong,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,Xs4: coinductive_llist @ A,B4: B,B5: B] :
      ( ( Xs = Xs4 )
     => ( ( ( coinductive_lfinite @ A @ Xs4 )
         => ( B4 = B5 ) )
       => ( ( tLList1672613558_llist @ B @ A @ B4 @ Xs )
          = ( tLList1672613558_llist @ B @ A @ B5 @ Xs4 ) ) ) ) ).

% tllist_of_llist_cong
thf(fact_175_llist__of__tllist_Osimps_I3_J,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( ( coinductive_lhd @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
        = ( tLList200813139tllist @ B @ A @ A
          @ ^ [X2: B] : ( undefined @ A )
          @ ^ [X2: A,Xs5: tLList446370796tllist @ A @ B] : X2
          @ Xs ) ) ) ).

% llist_of_tllist.simps(3)
thf(fact_176_llist__of__tllist_Octr_I2_J,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( ( tLList798109904tllist @ A @ B @ Xs )
        = ( coinductive_LCons @ A
          @ ( tLList200813139tllist @ B @ A @ A
            @ ^ [X2: B] : ( undefined @ A )
            @ ^ [X2: A,Xs5: tLList446370796tllist @ A @ B] : X2
            @ Xs )
          @ ( tLList200813139tllist @ B @ ( coinductive_llist @ A ) @ A
            @ ^ [X2: B] : ( undefined @ ( coinductive_llist @ A ) )
            @ ^ [X2: A] : ( tLList798109904tllist @ A @ B )
            @ Xs ) ) ) ) ).

% llist_of_tllist.ctr(2)
thf(fact_177_thd__TNil,axiom,
    ! [B: $tType,A: $tType,B4: B] :
      ( ( tLList_Mirabelle_thd @ A @ B @ ( tLList57907754e_TNil @ B @ A @ B4 ) )
      = ( undefined @ A ) ) ).

% thd_TNil
thf(fact_178_thd__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList_Mirabelle_thd @ A @ B )
      = ( tLList200813139tllist @ B @ A @ A
        @ ^ [X_dummy: B] : ( undefined @ A )
        @ ^ [X213: A,X223: tLList446370796tllist @ A @ B] : X213 ) ) ).

% thd_def
thf(fact_179_terminal0_Oraw__induct,axiom,
    ! [C: $tType,D: $tType,P: ( tLList446370796tllist @ C @ D ) > D > $o,Xs: tLList446370796tllist @ C @ D,Y: D] :
      ( ! [Terminal0: ( tLList446370796tllist @ C @ D ) > D] :
          ( ! [X6: tLList446370796tllist @ C @ D] :
              ( ( ( Terminal0 @ X6 )
               != ( undefined @ D ) )
             => ( P @ X6 @ ( Terminal0 @ X6 ) ) )
         => ! [Xs3: tLList446370796tllist @ C @ D,Xsa: D] :
              ( ( ( ( tLList1968894004s_TNil @ C @ D @ Xs3 )
                 => ( ( tLList200813139tllist @ D @ D @ C @ ( id @ D ) @ ( undefined @ ( C > ( tLList446370796tllist @ C @ D ) > D ) ) @ Xs3 )
                    = Xsa ) )
                & ( ~ ( tLList1968894004s_TNil @ C @ D @ Xs3 )
                 => ( ( Terminal0 @ ( tLList_Mirabelle_ttl @ C @ D @ Xs3 ) )
                    = Xsa ) ) )
             => ( ( Xsa
                 != ( undefined @ D ) )
               => ( P @ Xs3 @ Xsa ) ) ) )
     => ( ( ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ C @ D ) > D ) @ Xs )
          = Y )
       => ( ( Y
           != ( undefined @ D ) )
         => ( P @ Xs @ Y ) ) ) ) ).

% terminal0.raw_induct
thf(fact_180_terminal0_Osimps,axiom,
    ! [D: $tType,C: $tType] :
      ( ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ C @ D ) > D ) )
      = ( ^ [Xs6: tLList446370796tllist @ C @ D] : ( if @ D @ ( tLList1968894004s_TNil @ C @ D @ Xs6 ) @ ( tLList200813139tllist @ D @ D @ C @ ( id @ D ) @ ( undefined @ ( C > ( tLList446370796tllist @ C @ D ) > D ) ) @ Xs6 ) @ ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ C @ D ) > D ) @ ( tLList_Mirabelle_ttl @ C @ D @ Xs6 ) ) ) ) ) ).

% terminal0.simps
thf(fact_181_tllist__of__llist_Ocode,axiom,
    ! [A: $tType,B: $tType] :
      ( ( tLList1672613558_llist @ B @ A )
      = ( ^ [B6: B] :
            ( coindu1381640503_llist @ ( tLList446370796tllist @ A @ B ) @ A @ ( tLList57907754e_TNil @ B @ A @ B6 )
            @ ^ [X2: A,Xs5: coinductive_llist @ A] : ( tLList1992840728_TCons @ A @ B @ X2 @ ( tLList1672613558_llist @ B @ A @ B6 @ Xs5 ) ) ) ) ) ).

% tllist_of_llist.code
thf(fact_182_tllist_Omap__id,axiom,
    ! [B: $tType,A: $tType,T2: tLList446370796tllist @ A @ B] :
      ( ( tLList1669959861e_tmap @ A @ A @ B @ B @ ( id @ A ) @ ( id @ B ) @ T2 )
      = T2 ) ).

% tllist.map_id
thf(fact_183_tllist_Omap__id0,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1669959861e_tmap @ A @ A @ B @ B @ ( id @ A ) @ ( id @ B ) )
      = ( id @ ( tLList446370796tllist @ A @ B ) ) ) ).

% tllist.map_id0
thf(fact_184_lhd__def,axiom,
    ! [A: $tType] :
      ( ( coinductive_lhd @ A )
      = ( coindu1381640503_llist @ A @ A @ ( undefined @ A )
        @ ^ [X213: A,X223: coinductive_llist @ A] : X213 ) ) ).

% lhd_def
thf(fact_185_tllist__of__llist_Octr_I2_J,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ~ ( coinductive_lnull @ A @ Xs )
     => ( ( tLList1672613558_llist @ B @ A @ B4 @ Xs )
        = ( tLList1992840728_TCons @ A @ B
          @ ( coindu1381640503_llist @ A @ A @ ( undefined @ A )
            @ ^ [X2: A,Xs5: coinductive_llist @ A] : X2
            @ Xs )
          @ ( coindu1381640503_llist @ ( tLList446370796tllist @ A @ B ) @ A @ ( undefined @ ( tLList446370796tllist @ A @ B ) )
            @ ^ [X2: A] : ( tLList1672613558_llist @ B @ A @ B4 )
            @ Xs ) ) ) ) ).

% tllist_of_llist.ctr(2)
thf(fact_186_llist__of__tllist_Osimps_I4_J,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( ( coinductive_ltl @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
        = ( tLList200813139tllist @ B @ ( coinductive_llist @ A ) @ A
          @ ^ [X2: B] : ( undefined @ ( coinductive_llist @ A ) )
          @ ^ [X2: A] : ( tLList798109904tllist @ A @ B )
          @ Xs ) ) ) ).

% llist_of_tllist.simps(4)
thf(fact_187_tllist__of__llist_Odisc__iff_I2_J,axiom,
    ! [B: $tType,A: $tType,B4: B,Xs: coinductive_llist @ A] :
      ( ( ~ ( tLList1968894004s_TNil @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) ) )
      = ( ~ ( coinductive_lnull @ A @ Xs ) ) ) ).

% tllist_of_llist.disc_iff(2)
thf(fact_188_tllist__of__llist_Odisc__iff_I1_J,axiom,
    ! [B: $tType,A: $tType,B4: B,Xs: coinductive_llist @ A] :
      ( ( tLList1968894004s_TNil @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
      = ( coinductive_lnull @ A @ Xs ) ) ).

% tllist_of_llist.disc_iff(1)
thf(fact_189_llist__of__tllist_Odisc__iff_I2_J,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( ~ ( coinductive_lnull @ A @ ( tLList798109904tllist @ A @ B @ Xs ) ) )
      = ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs ) ) ) ).

% llist_of_tllist.disc_iff(2)
thf(fact_190_llist__of__tllist_Odisc__iff_I1_J,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( coinductive_lnull @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
      = ( tLList1968894004s_TNil @ A @ B @ Xs ) ) ).

% llist_of_tllist.disc_iff(1)
thf(fact_191_terminal__tllist__of__llist__lnull,axiom,
    ! [A: $tType,B: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( ( tLList2110128105rminal @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
        = B4 ) ) ).

% terminal_tllist_of_llist_lnull
thf(fact_192_ttl__tllist__of__llist,axiom,
    ! [B: $tType,A: $tType,B4: B,Xs: coinductive_llist @ A] :
      ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
      = ( tLList1672613558_llist @ B @ A @ B4 @ ( coinductive_ltl @ A @ Xs ) ) ) ).

% ttl_tllist_of_llist
thf(fact_193_ltl__llist__of__tllist,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( coinductive_ltl @ A @ ( tLList798109904tllist @ A @ B @ Xs ) )
      = ( tLList798109904tllist @ A @ B @ ( tLList_Mirabelle_ttl @ A @ B @ Xs ) ) ) ).

% ltl_llist_of_tllist
thf(fact_194_llist_Odisc__eq__case_I2_J,axiom,
    ! [A: $tType,Llist: coinductive_llist @ A] :
      ( ( ~ ( coinductive_lnull @ A @ Llist ) )
      = ( coindu1381640503_llist @ $o @ A @ $false
        @ ^ [Uu: A,Uv: coinductive_llist @ A] : $true
        @ Llist ) ) ).

% llist.disc_eq_case(2)
thf(fact_195_llist_Odisc__eq__case_I1_J,axiom,
    ! [A: $tType] :
      ( ( coinductive_lnull @ A )
      = ( coindu1381640503_llist @ $o @ A @ $true
        @ ^ [Uu: A,Uv: coinductive_llist @ A] : $false ) ) ).

% llist.disc_eq_case(1)
thf(fact_196_tllist__of__llist_Odisc_I2_J,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ~ ( coinductive_lnull @ A @ Xs )
     => ~ ( tLList1968894004s_TNil @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) ) ) ).

% tllist_of_llist.disc(2)
thf(fact_197_tllist__of__llist_Odisc_I1_J,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( tLList1968894004s_TNil @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) ) ) ).

% tllist_of_llist.disc(1)
thf(fact_198_llist__of__tllist_Odisc_I2_J,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ~ ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ~ ( coinductive_lnull @ A @ ( tLList798109904tllist @ A @ B @ Xs ) ) ) ).

% llist_of_tllist.disc(2)
thf(fact_199_llist__of__tllist_Odisc_I1_J,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( coinductive_lnull @ A @ ( tLList798109904tllist @ A @ B @ Xs ) ) ) ).

% llist_of_tllist.disc(1)
thf(fact_200_tllist__of__llist_Osimps_I5_J,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ~ ( coinductive_lnull @ A @ Xs )
     => ( ( tLList_Mirabelle_ttl @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
        = ( coindu1381640503_llist @ ( tLList446370796tllist @ A @ B ) @ A @ ( undefined @ ( tLList446370796tllist @ A @ B ) )
          @ ^ [X2: A] : ( tLList1672613558_llist @ B @ A @ B4 )
          @ Xs ) ) ) ).

% tllist_of_llist.simps(5)
thf(fact_201_tllist__of__llist_Octr_I1_J,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( ( tLList1672613558_llist @ B @ A @ B4 @ Xs )
        = ( tLList57907754e_TNil @ B @ A
          @ ( coindu1381640503_llist @ B @ A @ B4
            @ ^ [X2: A,Xs5: coinductive_llist @ A] : ( undefined @ B )
            @ Xs ) ) ) ) ).

% tllist_of_llist.ctr(1)
thf(fact_202_tllist__of__llist_Osimps_I3_J,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( ( tLList2110128105rminal @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
        = ( coindu1381640503_llist @ B @ A @ B4
          @ ^ [X2: A,Xs5: coinductive_llist @ A] : ( undefined @ B )
          @ Xs ) ) ) ).

% tllist_of_llist.simps(3)
thf(fact_203_tllist__of__llist_Osimps_I4_J,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,B4: B] :
      ( ~ ( coinductive_lnull @ A @ Xs )
     => ( ( tLList_Mirabelle_thd @ A @ B @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) )
        = ( coindu1381640503_llist @ A @ A @ ( undefined @ A )
          @ ^ [X2: A,Xs5: coinductive_llist @ A] : X2
          @ Xs ) ) ) ).

% tllist_of_llist.simps(4)
thf(fact_204_llist_Ocase__distrib,axiom,
    ! [B: $tType,C: $tType,A: $tType,H: B > C,F1: B,F2: A > ( coinductive_llist @ A ) > B,Llist: coinductive_llist @ A] :
      ( ( H @ ( coindu1381640503_llist @ B @ A @ F1 @ F2 @ Llist ) )
      = ( coindu1381640503_llist @ C @ A @ ( H @ F1 )
        @ ^ [X13: A,X24: coinductive_llist @ A] : ( H @ ( F2 @ X13 @ X24 ) )
        @ Llist ) ) ).

% llist.case_distrib
thf(fact_205_lappend_Octr_I2_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ~ ( coinductive_lnull @ A @ Xs )
        | ~ ( coinductive_lnull @ A @ Ys ) )
     => ( ( coinductive_lappend @ A @ Xs @ Ys )
        = ( coinductive_LCons @ A
          @ ( coindu1381640503_llist @ A @ A @ ( coinductive_lhd @ A @ Ys )
            @ ^ [X2: A,Xs5: coinductive_llist @ A] : X2
            @ Xs )
          @ ( coindu1381640503_llist @ ( coinductive_llist @ A ) @ A
            @ ( coindu1381640503_llist @ ( coinductive_llist @ A ) @ A @ ( undefined @ ( coinductive_llist @ A ) )
              @ ^ [Uu2: A,Uv2: coinductive_llist @ A] : Uv2
              @ Ys )
            @ ^ [X2: A,Xs5: coinductive_llist @ A] : ( coinductive_lappend @ A @ Xs5 @ Ys )
            @ Xs ) ) ) ) ).

% lappend.ctr(2)
thf(fact_206_llist__of__tllist_Ocode,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList798109904tllist @ A @ B )
      = ( tLList200813139tllist @ B @ ( coinductive_llist @ A ) @ A
        @ ^ [X2: B] : ( coinductive_LNil @ A )
        @ ^ [X2: A,Xs5: tLList446370796tllist @ A @ B] : ( coinductive_LCons @ A @ X2 @ ( tLList798109904tllist @ A @ B @ Xs5 ) ) ) ) ).

% llist_of_tllist.code
thf(fact_207_lappendt__LNil,axiom,
    ! [B: $tType,A: $tType,Tr: tLList446370796tllist @ A @ B] :
      ( ( tLList98099029ppendt @ A @ B @ ( coinductive_LNil @ A ) @ Tr )
      = Tr ) ).

% lappendt_LNil
thf(fact_208_TNil__eq__tllist__of__llist,axiom,
    ! [B: $tType,A: $tType,B4: B,B5: B,Xs: coinductive_llist @ A] :
      ( ( ( tLList57907754e_TNil @ B @ A @ B4 )
        = ( tLList1672613558_llist @ B @ A @ B5 @ Xs ) )
      = ( ( B4 = B5 )
        & ( Xs
          = ( coinductive_LNil @ A ) ) ) ) ).

% TNil_eq_tllist_of_llist
thf(fact_209_tllist__of__llist__LNil,axiom,
    ! [A: $tType,B: $tType,B4: B] :
      ( ( tLList1672613558_llist @ B @ A @ B4 @ ( coinductive_LNil @ A ) )
      = ( tLList57907754e_TNil @ B @ A @ B4 ) ) ).

% tllist_of_llist_LNil
thf(fact_210_tllist__of__llist__eq,axiom,
    ! [B: $tType,A: $tType,B5: B,Xs: coinductive_llist @ A,B4: B] :
      ( ( ( tLList1672613558_llist @ B @ A @ B5 @ Xs )
        = ( tLList57907754e_TNil @ B @ A @ B4 ) )
      = ( ( B4 = B5 )
        & ( Xs
          = ( coinductive_LNil @ A ) ) ) ) ).

% tllist_of_llist_eq
thf(fact_211_llist__of__tllist__TNil,axiom,
    ! [A: $tType,Aa: $tType,X: A] :
      ( ( tLList798109904tllist @ Aa @ A @ ( tLList57907754e_TNil @ A @ Aa @ X ) )
      = ( coinductive_LNil @ Aa ) ) ).

% llist_of_tllist_TNil
thf(fact_212_lappend_Ocode,axiom,
    ! [A: $tType] :
      ( ( coinductive_lappend @ A )
      = ( ^ [Xs6: coinductive_llist @ A,Ys4: coinductive_llist @ A] :
            ( coindu1381640503_llist @ ( coinductive_llist @ A ) @ A @ Ys4
            @ ^ [X2: A,Xs5: coinductive_llist @ A] : ( coinductive_LCons @ A @ X2 @ ( coinductive_lappend @ A @ Xs5 @ Ys4 ) )
            @ Xs6 ) ) ) ).

% lappend.code
thf(fact_213_ltl__def,axiom,
    ! [A: $tType] :
      ( ( coinductive_ltl @ A )
      = ( coindu1381640503_llist @ ( coinductive_llist @ A ) @ A @ ( coinductive_LNil @ A )
        @ ^ [X213: A,X223: coinductive_llist @ A] : X223 ) ) ).

% ltl_def
thf(fact_214_lhd__LNil,axiom,
    ! [A: $tType] :
      ( ( coinductive_lhd @ A @ ( coinductive_LNil @ A ) )
      = ( undefined @ A ) ) ).

% lhd_LNil
thf(fact_215_llist__of__tllist__eq__LNil,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( ( tLList798109904tllist @ A @ B @ Xs )
        = ( coinductive_LNil @ A ) )
      = ( tLList1968894004s_TNil @ A @ B @ Xs ) ) ).

% llist_of_tllist_eq_LNil
thf(fact_216_llist__of__tllist_Octr_I1_J,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] :
      ( ( tLList1968894004s_TNil @ A @ B @ Xs )
     => ( ( tLList798109904tllist @ A @ B @ Xs )
        = ( coinductive_LNil @ A ) ) ) ).

% llist_of_tllist.ctr(1)
thf(fact_217_tllist__of__llist__eq__lappendt__conv,axiom,
    ! [B: $tType,A: $tType,A2: B,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs2: tLList446370796tllist @ A @ B] :
      ( ( ( tLList1672613558_llist @ B @ A @ A2 @ Xs )
        = ( tLList98099029ppendt @ A @ B @ Ys @ Zs2 ) )
      = ( ? [Xs5: coinductive_llist @ A,A6: B] :
            ( ( Xs
              = ( coinductive_lappend @ A @ Ys @ Xs5 ) )
            & ( Zs2
              = ( tLList1672613558_llist @ B @ A @ A6 @ Xs5 ) )
            & ( ( coinductive_lfinite @ A @ Ys )
             => ( A2 = A6 ) ) ) ) ) ).

% tllist_of_llist_eq_lappendt_conv
thf(fact_218_lappend_Osimps_I3_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ~ ( coinductive_lnull @ A @ Xs )
        | ~ ( coinductive_lnull @ A @ Ys ) )
     => ( ( coinductive_lhd @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) )
        = ( coindu1381640503_llist @ A @ A @ ( coinductive_lhd @ A @ Ys )
          @ ^ [X2: A,Xs5: coinductive_llist @ A] : X2
          @ Xs ) ) ) ).

% lappend.simps(3)
thf(fact_219_lappend_Osimps_I4_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ~ ( coinductive_lnull @ A @ Xs )
        | ~ ( coinductive_lnull @ A @ Ys ) )
     => ( ( coinductive_ltl @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) )
        = ( coindu1381640503_llist @ ( coinductive_llist @ A ) @ A
          @ ( coindu1381640503_llist @ ( coinductive_llist @ A ) @ A @ ( undefined @ ( coinductive_llist @ A ) )
            @ ^ [Uu2: A,Uv2: coinductive_llist @ A] : Uv2
            @ Ys )
          @ ^ [X2: A,Xs5: coinductive_llist @ A] : ( coinductive_lappend @ A @ Xs5 @ Ys )
          @ Xs ) ) ) ).

% lappend.simps(4)
thf(fact_220_lfilter_Osimps,axiom,
    ! [A: $tType] :
      ( ( coinductive_lfilter @ A )
      = ( ^ [P5: A > $o] :
            ( coindu1381640503_llist @ ( coinductive_llist @ A ) @ A @ ( coinductive_LNil @ A )
            @ ^ [X2: A,Xs5: coinductive_llist @ A] : ( if @ ( coinductive_llist @ A ) @ ( P5 @ X2 ) @ ( coinductive_LCons @ A @ X2 @ ( coinductive_lfilter @ A @ P5 @ Xs5 ) ) @ ( coinductive_lfilter @ A @ P5 @ Xs5 ) ) ) ) ) ).

% lfilter.simps
thf(fact_221_tllist_Osimps_I21_J,axiom,
    ! [B: $tType,A: $tType,X21: A,X22: tLList446370796tllist @ A @ B] :
      ( ( tLList1719791291e_tset @ A @ B @ ( tLList1992840728_TCons @ A @ B @ X21 @ X22 ) )
      = ( insert @ A @ X21 @ ( tLList1719791291e_tset @ A @ B @ X22 ) ) ) ).

% tllist.simps(21)
thf(fact_222_lfilter__K__True,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A
        @ ^ [Uu: A] : $true
        @ Xs )
      = Xs ) ).

% lfilter_K_True
thf(fact_223_lfitler__K__False,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A
        @ ^ [Uu: A] : $false
        @ Xs )
      = ( coinductive_LNil @ A ) ) ).

% lfitler_K_False
thf(fact_224_lset__lfilter,axiom,
    ! [A: $tType,P: A > $o,Xs: coinductive_llist @ A] :
      ( ( coinductive_lset @ A @ ( coinductive_lfilter @ A @ P @ Xs ) )
      = ( collect @ A
        @ ^ [X2: A] :
            ( ( member @ A @ X2 @ ( coinductive_lset @ A @ Xs ) )
            & ( P @ X2 ) ) ) ) ).

% lset_lfilter
thf(fact_225_insert__def,axiom,
    ! [A: $tType] :
      ( ( insert @ A )
      = ( ^ [A4: A] :
            ( sup_sup @ ( set @ A )
            @ ( collect @ A
              @ ^ [X2: A] : X2 = A4 ) ) ) ) ).

% insert_def
thf(fact_226_insert__compr,axiom,
    ! [A: $tType] :
      ( ( insert @ A )
      = ( ^ [A4: A,B8: set @ A] :
            ( collect @ A
            @ ^ [X2: A] :
                ( ( X2 = A4 )
                | ( member @ A @ X2 @ B8 ) ) ) ) ) ).

% insert_compr
thf(fact_227_insert__Collect,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( insert @ A @ A2 @ ( collect @ A @ P ) )
      = ( collect @ A
        @ ^ [U: A] :
            ( ( U != A2 )
           => ( P @ U ) ) ) ) ).

% insert_Collect
thf(fact_228_lfilter__lfilter,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o,Xs: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A @ P @ ( coinductive_lfilter @ A @ Q @ Xs ) )
      = ( coinductive_lfilter @ A
        @ ^ [X2: A] :
            ( ( P @ X2 )
            & ( Q @ X2 ) )
        @ Xs ) ) ).

% lfilter_lfilter
thf(fact_229_set2__tllist__tllist__of__llist,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ B,B4: A] :
      ( ( ( coinductive_lfinite @ B @ Xs )
       => ( ( tLList457864275tllist @ B @ A @ ( tLList1672613558_llist @ A @ B @ B4 @ Xs ) )
          = ( insert @ A @ B4 @ ( bot_bot @ ( set @ A ) ) ) ) )
      & ( ~ ( coinductive_lfinite @ B @ Xs )
       => ( ( tLList457864275tllist @ B @ A @ ( tLList1672613558_llist @ A @ B @ B4 @ Xs ) )
          = ( bot_bot @ ( set @ A ) ) ) ) ) ).

% set2_tllist_tllist_of_llist
thf(fact_230_lfilter__repeat,axiom,
    ! [A: $tType,P: A > $o,X: A] :
      ( ( ( P @ X )
       => ( ( coinductive_lfilter @ A @ P
            @ ( coinductive_iterates @ A
              @ ^ [X2: A] : X2
              @ X ) )
          = ( coinductive_iterates @ A
            @ ^ [X2: A] : X2
            @ X ) ) )
      & ( ~ ( P @ X )
       => ( ( coinductive_lfilter @ A @ P
            @ ( coinductive_iterates @ A
              @ ^ [X2: A] : X2
              @ X ) )
          = ( coinductive_LNil @ A ) ) ) ) ).

% lfilter_repeat
thf(fact_231_singleton__conv,axiom,
    ! [A: $tType,A2: A] :
      ( ( collect @ A
        @ ^ [X2: A] : X2 = A2 )
      = ( insert @ A @ A2 @ ( bot_bot @ ( set @ A ) ) ) ) ).

% singleton_conv
thf(fact_232_singleton__conv2,axiom,
    ! [A: $tType,A2: A] :
      ( ( collect @ A
        @ ( ^ [Y3: A,Z: A] : Y3 = Z
          @ A2 ) )
      = ( insert @ A @ A2 @ ( bot_bot @ ( set @ A ) ) ) ) ).

% singleton_conv2
thf(fact_233_lset__repeat,axiom,
    ! [A: $tType,X: A] :
      ( ( coinductive_lset @ A
        @ ( coinductive_iterates @ A
          @ ^ [X2: A] : X2
          @ X ) )
      = ( insert @ A @ X @ ( bot_bot @ ( set @ A ) ) ) ) ).

% lset_repeat
thf(fact_234_Collect__conv__if,axiom,
    ! [A: $tType,P: A > $o,A2: A] :
      ( ( ( P @ A2 )
       => ( ( collect @ A
            @ ^ [X2: A] :
                ( ( X2 = A2 )
                & ( P @ X2 ) ) )
          = ( insert @ A @ A2 @ ( bot_bot @ ( set @ A ) ) ) ) )
      & ( ~ ( P @ A2 )
       => ( ( collect @ A
            @ ^ [X2: A] :
                ( ( X2 = A2 )
                & ( P @ X2 ) ) )
          = ( bot_bot @ ( set @ A ) ) ) ) ) ).

% Collect_conv_if
thf(fact_235_Collect__conv__if2,axiom,
    ! [A: $tType,P: A > $o,A2: A] :
      ( ( ( P @ A2 )
       => ( ( collect @ A
            @ ^ [X2: A] :
                ( ( A2 = X2 )
                & ( P @ X2 ) ) )
          = ( insert @ A @ A2 @ ( bot_bot @ ( set @ A ) ) ) ) )
      & ( ~ ( P @ A2 )
       => ( ( collect @ A
            @ ^ [X2: A] :
                ( ( A2 = X2 )
                & ( P @ X2 ) ) )
          = ( bot_bot @ ( set @ A ) ) ) ) ) ).

% Collect_conv_if2
thf(fact_236_empty__def,axiom,
    ! [A: $tType] :
      ( ( bot_bot @ ( set @ A ) )
      = ( collect @ A
        @ ^ [X2: A] : $false ) ) ).

% empty_def
thf(fact_237_tllist_Osimps_I20_J,axiom,
    ! [B: $tType,A: $tType,X1: B] :
      ( ( tLList1719791291e_tset @ A @ B @ ( tLList57907754e_TNil @ B @ A @ X1 ) )
      = ( bot_bot @ ( set @ A ) ) ) ).

% tllist.simps(20)
thf(fact_238_tllist_Osimps_I22_J,axiom,
    ! [A: $tType,B: $tType,X1: B] :
      ( ( tLList457864275tllist @ A @ B @ ( tLList57907754e_TNil @ B @ A @ X1 ) )
      = ( insert @ B @ X1 @ ( bot_bot @ ( set @ B ) ) ) ) ).

% tllist.simps(22)
thf(fact_239_lfinite__lconcat,axiom,
    ! [A: $tType,Xss: coinductive_llist @ ( coinductive_llist @ A )] :
      ( ( coinductive_lfinite @ A @ ( coinductive_lconcat @ A @ Xss ) )
      = ( ( coinductive_lfinite @ ( coinductive_llist @ A )
          @ ( coinductive_lfilter @ ( coinductive_llist @ A )
            @ ^ [Xs6: coinductive_llist @ A] :
                ~ ( coinductive_lnull @ A @ Xs6 )
            @ Xss ) )
        & ! [X2: coinductive_llist @ A] :
            ( ( member @ ( coinductive_llist @ A ) @ X2 @ ( coinductive_lset @ ( coinductive_llist @ A ) @ Xss ) )
           => ( coinductive_lfinite @ A @ X2 ) ) ) ) ).

% lfinite_lconcat
thf(fact_240_lconcat__repeat__LNil,axiom,
    ! [A: $tType] :
      ( ( coinductive_lconcat @ A
        @ ( coinductive_iterates @ ( coinductive_llist @ A )
          @ ^ [X2: coinductive_llist @ A] : X2
          @ ( coinductive_LNil @ A ) ) )
      = ( coinductive_LNil @ A ) ) ).

% lconcat_repeat_LNil
thf(fact_241_lconcat_Osimps,axiom,
    ! [A: $tType] :
      ( ( coinductive_lconcat @ A )
      = ( coindu1381640503_llist @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ ( coinductive_LNil @ A )
        @ ^ [Xs6: coinductive_llist @ A,Xss2: coinductive_llist @ ( coinductive_llist @ A )] : ( coinductive_lappend @ A @ Xs6 @ ( coinductive_lconcat @ A @ Xss2 ) ) ) ) ).

% lconcat.simps
thf(fact_242_lconcat__lfilter__neq__LNil,axiom,
    ! [A: $tType,Xss: coinductive_llist @ ( coinductive_llist @ A )] :
      ( ( coinductive_lconcat @ A
        @ ( coinductive_lfilter @ ( coinductive_llist @ A )
          @ ^ [Xs6: coinductive_llist @ A] :
              ~ ( coinductive_lnull @ A @ Xs6 )
          @ Xss ) )
      = ( coinductive_lconcat @ A @ Xss ) ) ).

% lconcat_lfilter_neq_LNil
thf(fact_243_lnull__lconcat,axiom,
    ! [A: $tType,Xss: coinductive_llist @ ( coinductive_llist @ A )] :
      ( ( coinductive_lnull @ A @ ( coinductive_lconcat @ A @ Xss ) )
      = ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( coinductive_lset @ ( coinductive_llist @ A ) @ Xss ) @ ( collect @ ( coinductive_llist @ A ) @ ( coinductive_lnull @ A ) ) ) ) ).

% lnull_lconcat
thf(fact_244_tset__ttl,axiom,
    ! [B: $tType,A: $tType,Xs: tLList446370796tllist @ A @ B] : ( ord_less_eq @ ( set @ A ) @ ( tLList1719791291e_tset @ A @ B @ ( tLList_Mirabelle_ttl @ A @ B @ Xs ) ) @ ( tLList1719791291e_tset @ A @ B @ Xs ) ) ).

% tset_ttl
thf(fact_245_conj__subset__def,axiom,
    ! [A: $tType,A3: set @ A,P: A > $o,Q: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ A3
        @ ( collect @ A
          @ ^ [X2: A] :
              ( ( P @ X2 )
              & ( Q @ X2 ) ) ) )
      = ( ( ord_less_eq @ ( set @ A ) @ A3 @ ( collect @ A @ P ) )
        & ( ord_less_eq @ ( set @ A ) @ A3 @ ( collect @ A @ Q ) ) ) ) ).

% conj_subset_def
thf(fact_246_prop__restrict,axiom,
    ! [A: $tType,X: A,Z5: set @ A,X5: set @ A,P: A > $o] :
      ( ( member @ A @ X @ Z5 )
     => ( ( ord_less_eq @ ( set @ A ) @ Z5
          @ ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ X5 )
                & ( P @ X2 ) ) ) )
       => ( P @ X ) ) ) ).

% prop_restrict
thf(fact_247_Collect__restrict,axiom,
    ! [A: $tType,X5: set @ A,P: A > $o] :
      ( ord_less_eq @ ( set @ A )
      @ ( collect @ A
        @ ^ [X2: A] :
            ( ( member @ A @ X2 @ X5 )
            & ( P @ X2 ) ) )
      @ X5 ) ).

% Collect_restrict
thf(fact_248_subset__Collect__iff,axiom,
    ! [A: $tType,B9: set @ A,A3: set @ A,P: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ B9 @ A3 )
     => ( ( ord_less_eq @ ( set @ A ) @ B9
          @ ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ A3 )
                & ( P @ X2 ) ) ) )
        = ( ! [X2: A] :
              ( ( member @ A @ X2 @ B9 )
             => ( P @ X2 ) ) ) ) ) ).

% subset_Collect_iff
thf(fact_249_subset__CollectI,axiom,
    ! [A: $tType,B9: set @ A,A3: set @ A,Q: A > $o,P: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ B9 @ A3 )
     => ( ! [X3: A] :
            ( ( member @ A @ X3 @ B9 )
           => ( ( Q @ X3 )
             => ( P @ X3 ) ) )
       => ( ord_less_eq @ ( set @ A )
          @ ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ B9 )
                & ( Q @ X2 ) ) )
          @ ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ A3 )
                & ( P @ X2 ) ) ) ) ) ) ).

% subset_CollectI

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X: A,Y: A] :
      ( ( if @ A @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X: A,Y: A] :
      ( ( if @ A @ $true @ X @ Y )
      = X ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    ( ( tLList1380991092t_all2 @ a @ b @ c @ d @ p @ q @ ( tLList1669959861e_tmap @ e @ a @ f @ c @ f2 @ g @ xs ) @ ys )
    = ( tLList1380991092t_all2 @ e @ b @ f @ d
      @ ^ [X2: e] : ( p @ ( f2 @ X2 ) )
      @ ^ [X2: f] : ( q @ ( g @ X2 ) )
      @ xs
      @ ys ) ) ).

%------------------------------------------------------------------------------